目前我有一个网格,我试图让一个单元格带有验证规则。为了验证它,我需要该行的最小值和最大值。使用验证规则和依赖项属性的WPF网格
校验类:
public decimal Max { get; set; }
public decimal Min { get; set; }
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
var test = i < Min;
var test2 = i > Max;
if (test || test2)
return new ValidationResult(false, String.Format("Fee out of range Min: ${0} Max: ${1}", Min, Max));
else
return new ValidationResult(true, null);
}
用户控制:
<telerik:RadGridView SelectedItem ="{Binding SelectedScript}"
ItemsSource="{Binding ScheduleScripts}">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn
DataMemberBinding="{Binding Amount}" Header="Amount"
CellTemplate="{StaticResource AmountDataTemplate}"
CellEditTemplate="{StaticResource AmountDataTemplate}"/>
<telerik:GridViewComboBoxColumn
Header="Fee Type"
Style="{StaticResource FeeTypeScriptStyle}"
CellTemplate="{StaticResource FeeTypeTemplate}"/>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
FeeType类:
public class FeeType
{
public decimal Min { get; set; }
public decimal Max { get; set; }
public string Name { get; set; }
}
我在这里尝试这种解决方案WPF ValidationRule with dependency property和它的伟大工程。但是现在我遇到了代理无法通过视图模型实例化的问题。它基于行的所选ComboBox值的Min和Max属性。
例如,组合框样本值低于
Admin Min: $75 Max $500
Late Min: $0 Max $50
由于就是了网格实际上可以具有尽可能多的行,我不能看到如何创建代理会在我的情况下工作。如果我能得到一些指导提示,将不胜感激。
代码中只有一个'ComboBox'。 – AnjumSKhan
@AnjumSKhan只有假设是一个组合框。组合框值是FeeType类的类型。所以无论选择什么都决定了它的最小值和最大值。 – Master
你确定你不是[XY问题](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)?使用'ValidationRule'会花费很多精力来完成这项工作,而如果将验证逻辑移动到视图模型中,则很容易完成。 – Grx70