Vinculação para estilos WPF
Estou tentando criar um controle personalizado - um botão - que terá vários estilos aplicados a ele, dependendo do valor de uma propriedade no contexto de dados.
O que eu estava pensando é usar algo semelhante a:
<Button Style="{Binding Path=ButtonStyleProperty, Converter={StaticResource styleConverter}}" Text="{Binding Path=TextProp}" />
E no código ... Implemente um IValueConverter que faça algo semelhante ao código abaixo noConvertTo
método:
switch(value as ValueEnums)
{
case ValueEnums.Enum1:
FindResource("Enum1ButtonStyle") as Style;
break;
... and so on.
}
No entanto, não tenho muita certeza de como extrair o objeto de estilo e mesmo se isso for possível ...
O que estou fazendo nesse meio tempo é lidar com oDataContextChanged
evento e, em seguida, anexando um manipulador aoPropertyChanged
evento do objeto sendo vinculado ao botão - executando a instrução switch lá.
Não é tão perfeito, mas até encontrar uma solução melhor, parece que é isso que terei que usar.