如何从MVVM中的嵌套类调用ValidationResult

时间:2015-04-09 17:04:17

标签: c# wpf xaml

我在同一个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和代码中需要更改什么才能在嵌套类中实现验证规则?

由于

0 个答案:

没有答案