我在一些面板上有两个控件: textbox和combobox:
<TextBox Text="{Binding ShapeName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" />
<ComboBox SelectedItem="{Binding ActiveStageViewModel, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" />当我在combobox上选择一些东西时,我需要强制对textbox进行idataerrorinfo验证。如何做到这一点?
viewmodel中的代码:
string IDataErrorInfo.this[string propertyName]
{
get
{
var error = string.Empty;
if (propertyName == Expression.GetPropertyName(() => ActiveStageViewModel))
{
// TODO: Add functionality to force ShapeName property validation
return error;
}
if (propertyName == Expression.GetPropertyName(() => ShapeName))
{
error = ValidateShapeName();
}
TooltipMessage = error;
return error;
}
}发布于 2012-11-14 20:33:52
只需为您想要验证的属性引发NotifyPropertyChanged事件,或者如果您使用的是Silverlight4.5或.NET 4,则使用INotityDataErrorInfo。
发布于 2012-11-14 22:15:10
还值得记住的是,您可以使用String.Empty属性引发NotifyPropertyChanged。这将强制对该级别的所有属性进行验证。有时会很有用。
https://stackoverflow.com/questions/13378474
复制相似问题