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.

questionAnswers(4)

yourAnswerToTheQuestion