验证事件未触发
本文关键字:事件 验证 | 更新日期: 2023-09-27 18:02:07
我有这个非常简单的viewModel:
class ViewModel : IDataErrorInfo
{
public Producto myProduct { get; set; }
public string PR { get; set; }
public ViewModel()
{
myProduct = new Producto { ID = 1, Name = "Product 1" };
PR = "Test";
}
public string Error
{
get { throw new NotImplementedException(); }
}
public string this[string columnName]
{
get
{
string sError = "";
return sError;
}
}
}
这个简单的视图:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
Title="MainWindow" Height="350" Width="525">
<Window.DataContext>
<local:ViewModel/>
</Window.DataContext>
<Grid>
<StackPanel>
<TextBox Height="40" Width="200" Text="{Binding Path=myProduct.Name,ValidatesOnDataErrors=True}"/>
<TextBox Height="40" Width="200" Text="{Binding Path=PR,ValidatesOnDataErrors=True}"/>
</StackPanel>
</Grid>
谁能告诉我为什么验证事件是为财产PR而不是为我的产品?我无法从视图模型的公开对象验证字段!任何人请! !
{Binding Path=myProduct.Name, …
为了使绑定利用IDataErrorInfo
, myProduct
类型也必须实现IDataErrorInfo
。就像您需要为子对象实现INotifyPropertyChanged
一样,您也需要为每个子对象实现错误信息接口。