Задача: Связывание свойства типа Enum с RadioButtons с использованием параметризованного конвертера. Никакое исключение не было, Radiobutton может иметь проблемы с проверкой (не уверен). Во время тестирования отображается красный флажок вокруг RadioButtons.Binding RadioButton to Enum
информация: пытается использовать решение, данное в How to bind RadioButtons to an enum?
У меня есть Enum, как это:
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;
}
и внутри моего окна :
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'. Во время тестирования никогда не видел, чтобы он стал «истинным». Возможно, потому что значение по умолчанию Enum - это значение в индексе [0] этого перечисления, в моем случае значением по умолчанию будет «Training». Собственно, 'Stackpanel.Resources'part уже существует, забыл ввести код моего вопроса. Я отредактирую свой вопрос и добавлю эту недостающую часть. Спасибо за помощь! – Daniel
Что такое SystemType? –
Вы имеете в виду 'CrmSystemType'? Это тип Enum, созданный мной для выбора того, к какому из нашего Crm-сервера я хочу подключиться. Live- или Training-Server. – Daniel