我在同一个ValidationResult
中使用了ViewModel
,但现在我需要在ViewModel
课程中创建一个嵌套类并实现ValidationResult
,我不会&#39 ; t知道如何修改我的XAML来调用嵌套类。
有任何帮助吗?
public class AlgorithmSelectionViewModel : ValidationRule,INotifyPropertyChanged, IAlgorithmAccessor
{
private double _algorithmWeight = 1.0;
public AlgorithmSelectionViewModel()
{ }
public double AlgorithmWeight
{
get { return _algorithmWeight; }
set
{
_algorithmWeight = value;
OnPropertyChanged("AlgorithmWeight");
}
}
public double MinAlgorithmWeight
{
get;
set;
}
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
double AlgorithmWeight;
Boolean noIllegalChars;
noIllegalChars = double.TryParse(value.ToString(), out AlgorithmWeight);
if (value.ToString().Length < 1)
{
return new ValidationResult(false, "Algorithm Weight field cannot be empty");
}
else if (noIllegalChars == false)
{
return new ValidationResult(false, "Illegal Characters");
}
else if (AlgorithmWeight <= MinAlgorithmWeight)
{
return new ValidationResult(false, "Value must be bigger or equal to " + MinAlgorithmWeight);
}
else
{
return new ValidationResult(true, null);
}
}
}
我的原始XAML是
<TextBox Grid.Column="1"
HorizontalAlignment="Stretch"
Margin="0,0,0,15"
Name="textBox_algorthWheight"
VerticalAlignment="Center">
<TextBox.Text>
<Binding Path="AlgorithmWeight" StringFormat="N1" UpdateSourceTrigger="PropertyChanged" ValidatesOnDataErrors="True">
<Binding.ValidationRules>
<bulkWpf:AlgorithmSelectionViewMode MinAlgorithmWeight ="0"/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={x:Static RelativeSource.Self},
Path=(Validation.Errors)[0].ErrorContent}"/>
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
在XAML和代码中需要更改什么才能在嵌套类中实现验证规则?
由于