Переплет для стилей WPF
Я пытаюсь создать пользовательский элемент управления - кнопку, к которой будет применено несколько стилей в зависимости от значения свойства в контексте данных.
То, о чем я думал, использует нечто похожее на:
<Button Style="{Binding Path=ButtonStyleProperty, Converter={StaticResource styleConverter}}" Text="{Binding Path=TextProp}" />
И в коде ... Реализуйте IValueConverter, который делает что-то похожее на код ниже вConvertTo
метод:
switch(value as ValueEnums)
{
case ValueEnums.Enum1:
FindResource("Enum1ButtonStyle") as Style;
break;
... and so on.
}
Однако я не совсем уверен, как вытащить объект стиля и даже если это вообще возможно ...
В то же время я занимаюсьDataContextChanged
событие, затем присоединение обработчика кPropertyChanged
событие привязки объекта к кнопке, а затем запуск инструкции switch.
Это не совсем идеально, но пока я не найду лучшего решения, мне кажется, что это то, что мне придется использовать.