Ami*_*shi 8 c# data-binding wpf mvvm radio-button
从这个以及关于SO的这个(和其他)问题以及互联网上的许多其他材料,我理解了如何将单选按钮与VM绑定.
但是所有这些都为单选按钮的每个可能值创建了单独的属性.一个问题(这个)类似于我的要求,但接受的答案建议使用ListBox而不是单选按钮.
要表示人员性别(数据类型CHAR,可能值'M','F'),需要在VM中创建三个属性,如PersonGender,IsPersonMale,IsPersonFemale.我想只在一个属性PersonGender上控制它.我可以这样做吗?如果有,怎么样?
小智 14
你需要一个转换器.
//define this in the Window's Resources section or something similiarly suitable
<local:GenderConverter x:Key="genderConverterKey" />
<RadioButton Content="M" IsChecked="{Binding Gender, Converter={StaticResource ResourceKey=genderConverterKey}, ConverterParameter=M}" />
<RadioButton Content="F" IsChecked="{Binding Gender, Converter={StaticResource ResourceKey=genderConverterKey}, ConverterParameter=F}" />
Run Code Online (Sandbox Code Playgroud)
转换器
public class GenderConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return ((string)parameter == (string)value);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return (bool)value ? parameter : null;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14077 次 |
最近记录: |