目前我有一個網格,我試圖讓一個單元格帶有驗證規則。爲了驗證它,我需要該行的最小值和最大值。使用驗證規則和依賴項屬性的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