我会尽可能简洁地解释这一点。
我的观点中有以下内容:
DataGrid
ItemsSource
绑定到ObservableDictionary<string, string>
(我从Dr. WPF获得)。 SelectedItem
绑定到我的ViewModel的KeyValuePair
属性。在KeyValuePair
的setter中,它会相应地更改ViewModel中SelectedKey
和SelectedValue
属性的值。
TextBox
Text
从上方与SelectedValue
双向绑定。在SelectedValue
的设置器中,它运行(简化)ObservableDictionary[SelectedKey] = SelectedValue;
这允许用户选择一行,并通过键入ObservableDictionary
更改TextBox
中任意键的值。 所有这些功能都正确。选择行并正确更改TextBox
文本会更改代码隐藏中的ObservableDictionary,而DataGrid本身会在视图中更新以反映新值。
但是,每次更改值时,DataGrid
都会出现红色边框,就像验证错误一样,我无法弄清楚为什么或如何找出验证错误。我没有在XAML或代码隐藏中为DataGrid设置任何类型的验证。
我该怎么做才能找出具体的验证错误,以便我可以尝试修复它?
答案 0 :(得分:-1)
经过额外搜索后,我找到了自己的答案。我绑定了TextBox的Text属性,如下所示:
Text="{Binding ElementName=TheDataGrid, Path=(Validation.Errors)[0].ErrorContent, Mode=OneWay}"
TheDataGrid
是分配给我的DataGrid控件的名称。