현재 그리드가 있으며 유효성 검사 규칙이있는 셀이 있습니다. 유효성을 검사하려면 행의 최소값과 최대 값이 필요합니다.유효성 검사 규칙 및 종속성 속성이있는 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 클래스 : 여기 WPF ValidationRule with dependency property하고 좋은 작품을이 솔루션을 시도했습니다
public class FeeType
{
public decimal Min { get; set; }
public decimal Max { get; set; }
public string Name { get; set; }
}
. 하지만 이제는 뷰 모델을 통해 프록시를 인스턴스화 할 수 없다는 문제가 발생했습니다. 그것은 행의 선택된 ComboBox Value의 Min 및 Max 속성을 기반으로합니다.
예를 들어, 그 콤보 상자의 샘플 값은 원하는대로 그리드 사실상 많은 행이있을 수 있기 때문에
Admin Min: $75 Max $500
Late Min: $0 Max $50
아래, 내가 만드는 프록시 내 상황에서 어떻게 작동하는지 볼 수 있습니다. 가이드의 일부 팁을 얻을 수 있다면 크게 감사하겠습니다.
코드에 'ComboBox'가 하나만 있습니다. – AnjumSKhan
@AnjumSKhan 하나의 ComboBox 만 있다고 가정합니다. comboBox 값은 FeeType 클래스 유형입니다. 따라서 선택되는 것이 무엇이든간에 최소 및 최대가 결정됩니다. – Master
이것이 [XY 문제] (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)가 아니라고 확신합니까? ValidationRule을 사용하여이 작업을 수행하는 데 많은 노력을 기울일 것입니다. 반면에 유효성 검사 로직을 뷰 모델로 이동하면 쉽게 수행 할 수 있습니다. – Grx70