gpt4 book ai didi

c# - XAML 绑定(bind)组

转载 作者:行者123 更新时间:2023-11-30 18:05:50 25 4
gpt4 key购买 nike

我正在尝试创建一个绑定(bind)组来根据数据网格中的 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,所以那里可能存在问题。

最佳答案

尝试将绑定(bind)组指定为 DataGrid.ItemBindingGroup 而不是 DataGrid.BindingGroup:

<DataGrid.ItemBindingGroup>
<BindingGroup>
<BindingGroup.ValidationRules>
<util:MinMaxParValidationRule ValidationStep="CommittedValue" />
</BindingGroup.ValidationRules>
</BindingGroup>
</DataGrid.ItemBindingGroup>

在这种情况下,您实际上可以省略指定绑定(bind)组的名称。它将自动用于一行中的所有绑定(bind)。

关于c# - XAML 绑定(bind)组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5170997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com