问题:
使用参数化转换器将枚举类型的属性绑定到单选按钮,没有抛出异常,但单选按钮可能存在验证问题(不确定)。测试时显示单选按钮周围的红框。
信息: 尝试使用以下解决方案: 如何将单选按钮绑定到枚举? 我有一个像这样的枚举:
信息: 尝试使用以下解决方案: 如何将单选按钮绑定到枚举? 我有一个像这样的枚举:
namespace crmVerwaltungstools.Models
{
public enum CrmSystemType
{
Training = 0,
Live = 1
}
}
BooleanToEnumConverter:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value.Equals(parameter);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value.Equals(true) ? (CrmSystemType)parameter : Binding.DoNothing;
}
在我的Window里:
xmlns:models="clr-namespace:crmVerwaltungstool.Models"
<StackPanel Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Orientation="Horizontal">
<StackPanel.Resources>
<converter:RadioButtonIsCheckedToCrmSystemTypeConverter x:Key="RbIsCheckedToCrmSystemTypeConverter" />
</StackPanel.Resources>
<RadioButton Content="Schulungs-System" GroupName="rbg_SelectSystem"
IsChecked="{Binding Path=SystemType, Converter={StaticResource RbIsCheckedToCrmSystemTypeConverter},
ConverterParameter={x:Static models:CrmSystemType.Training}}"/>
<RadioButton Content="Live-System" GroupName="rbg_SelectSystem"
IsChecked="{Binding Path=SystemType, Converter={StaticResource RbIsCheckedToCrmSystemTypeConverter},
ConverterParameter={x:Static models:CrmSystemType.Live}}"/>
</StackPanel>
没有看到任何错误。(可能只是今天看太多代码了...)
谢谢帮忙!!
value == null
检查。测试时从未看到它变为“真”。也许是因为枚举的默认值是该枚举的index [0]处的值,在我的情况下,默认值将是 'Training'。实际上,Stackpanel.Resources
部分已经存在,只是忘了将其放入我的问题代码中。 我将编辑我的问题并添加该缺失部分。 谢谢您的帮助! - DanielCrmSystemType
吗? 这是我自己创建的枚举类型,用于选择连接到我们的哪个 CRM 服务器。可以是生产环境或培训环境。 - Danielprivate CrmSystemType systemType public CrmSystemType SystemType { get { return systemType; } set { systemType = value; OnPropertyChanged("SystemType"); } }
- Daniel