Я пытаюсь создать группу привязок, чтобы вычислить допустимость строки на основе 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, поэтому там могут быть проблемы.