C# WPF在单个datagrid列上验证
我在代码隐藏中编写了ValidationRule,但我只希望在编辑/添加某个列中的值时触发它。因此,当我更改另一列中的另一个值时,不应触发验证。我怎样才能做到这一点 我现在将ValidationRule分配给datagrid,如下所示:C# WPF在单个datagrid列上验证,c#,wpf,validation,xaml,datagrid,C#,Wpf,Validation,Xaml,Datagrid,我在代码隐藏中编写了ValidationRule,但我只希望在编辑/添加某个列中的值时触发它。因此,当我更改另一列中的另一个值时,不应触发验证。我怎样才能做到这一点 我现在将ValidationRule分配给datagrid,如下所示: <DataGrid.RowValidationRules> <local:ValidationRule ValidationStep="UpdatedValue"/> </DataGrid.RowValidationRule
<DataGrid.RowValidationRules>
<local:ValidationRule ValidationStep="UpdatedValue"/>
</DataGrid.RowValidationRules>
<DataGridTextColumn Header="FOO">
<DataGridTextColumn.Binding>
<Binding Path="foo" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:ValidationRule/>
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
我已将其添加到datagridtextcolumn中,如下所示:
<DataGrid.RowValidationRules>
<local:ValidationRule ValidationStep="UpdatedValue"/>
</DataGrid.RowValidationRules>
<DataGridTextColumn Header="FOO">
<DataGridTextColumn.Binding>
<Binding Path="foo" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:ValidationRule/>
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
您可以为列定义编辑和显示模板,并将验证规则放入编辑模板中。我不太明白代码隐藏是如何形成的。ValidationRule是在代码隐藏中定义的。Validationrules总是在代码中定义的。这个有什么不同吗?如果需要将其放在一个字段上,请不要将其附加到行。它们适用于绑定。如上所述,将其应用于编辑模板中该字段的一个字段上的绑定。