繁体   English   中英

未选择任何选项时的RadioButton ValidationRule

[英]RadioButton ValidationRule when no option is selected

我试图弄清楚如何为radiobutton创建验证规则。 我试图实现的是用户必须通过单选按钮选择一个选项。

我的ViewModel具有一个基于Enum的属性:

public enum Gender
{
    Unknown,
    Male,
    Female
}

[ImplementPropertyChanged]
public class MyViewModel
{
    public Gender Gender { get; set; }

    public MyViewModel()
    {
        Gender = Gender.Unknown;
    }
}

<StackPanel Orientation="Horizontal">
    <RadioButton Content="Male" IsChecked="{Binding Gender, ConverterParameter={x:Static data:Gender.Male}, Converter={StaticResource EnumToBooleanConverter}}"/>
    <RadioButton Content="Female" IsChecked="{Binding Gender, ConverterParameter={x:Static data:Gender.Female}, Converter={StaticResource EnumToBooleanConverter}}"/>
</StackPanel>

我的复选框有一个“错误”样式(红色边框,字体颜色等)

当“ Gender仍设置为“ Unknown时,应该如何为每个单选按钮触发ValidationRule? (所以都显示出我的错误风格)

我有它的工作,不是与ValidationRule而是与IDataErrorInfo

[ImplementPropertyChanged]
public class MyViewModel : IDataErrorInfo
{
    public Gender Gender { get; set; }

    public MyViewModel()
    {
        Gender = Gender.Unknown;
    }

    public string this[string name]
    {
        get
        {
            if (name == "Gender" && Gender == Gender.Unknown)
            {
                return "Gender need to be known";
            }
            return null;
        }
    }

    public string Error
    {
        get
        {
            return null;
        }
    }
}

<StackPanel Orientation="Horizontal">
    <RadioButton Content="Male" IsChecked="{Binding Gender, ConverterParameter={x:Static data:Gender.Male}, Converter={StaticResource EnumToBooleanConverter}, NotifyOnSourceUpdated=True, ValidatesOnDataErrors=True}"/>
    <RadioButton Content="Female" IsChecked="{Binding Gender, ConverterParameter={x:Static data:Gender.Female}, Converter={StaticResource EnumToBooleanConverter}, NotifyOnSourceUpdated=True, ValidatesOnDataErrors=True}"/>
</StackPanel>

摘要:

  • 在代码中实现IDataErrorInfo
  • 在xaml中,将NotifyOnSourceUpdated=True, ValidatesOnDataErrors=TrueRadioButtons

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM