我正在尝试创建一个绑定组,根据数据网格中的3个文本框计算一行是否有效。
我已经创建了一个ValidationRule类,然后在我的数据网格中:
<DataGrid.BindingGroup>
<BindingGroup Name="RowBindingGroup">
<BindingGroup.ValidationRules>
<util:MinMaxParValidationRule ValidationStep="CommittedValue" />
</BindingGroup.ValidationRules>
</BindingGroup>
</DataGrid.BindingGroup>
并且
<TextBox.Text>
<Binding Path="ParStockLevel" UpdateSourceTrigger="PropertyChanged" BindingGroupName="RowBindingGroup" />
</TextBox.Text>
我的验证规则类看起来像这样
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
ValidationResult result = ValidationResult.ValidResult;
BindingGroup bindingGroup = (BindingGroup)value;
StockInformationDVM row = (StockInformationDVM)bindingGroup.Items[0];
现在当我运行应用程序时,传递到验证规则类中的值始终是我的数据网格中的第一行,而不是正在验证的行(除非您正在验证第一行!)我以前没有做过这个,并且我找到的示例没有使用MVVM,所以可能会有问题。
DataGridTemplateColumn
进行绑定?请仔细检查行是否确实具有类型为StockInformationDVM
的对象作为它们的DataContext
。 - Pavlo GlazkovItemsSource
应该足够了。我已经没有任何想法为什么在你的情况下它不起作用了... - Pavlo Glazkov