Padrão ValueConverter para uma classe no WPF
Pergunta
Estou prestes a iniciar um novo projeto da mina e atualmente estou avaliando algumas técnicas para localização, modularidade etc.
Eu tenho (pelo menos na minha opinião) uma abordagem muito bom para a localização, mas agora eu me esforço para encontrar uma solução boa para ligação de dados.
I quer valores de ligação de textfields etc. UIElements (em geral) para um método específico no DataContext da forma. O método se parece com isso:
public void GetValue(string name)
onde nome é um "caminho" na forma de "node / subnó / subsubnode". Pensei em usar um ValueConverter para a ligação e isso funcionou muito bem até agora.
minha expressão olhares de ligação como essa:
{Binding Path=Localization, Converter={StaticResource LocalizationConverter}, ConverterParameter=PrismBreak/Shell.xaml/New}
Eu acho que essa expressão de ligação, embora fazendo o seu trabalho é um bocado explodido ao uso para cada UIElement. Então eu pensei que se fosse possível definir um ValueConverter padrão para um determinado tipo (-> sempre que esse tipo é obrigado a algum lugar que ValueConverter é usado).
Isso é possível no WPF?
Se não é possível existe alguma outra boa maneira de se ligam a um método com parâmetros dinâmicos?
Agradecemos antecipadamente e melhores cumprimentos,
Chris
Solução
A forma prescrita de fazer localização para WPF, é criar BAML localizada em conjuntos de satélite; isto é conseguido através da adição do x: propriedade anexada Uid para elementos que você desejava ser localizada. Há um agradável WPF Globalização e seção n Localizatio no MSDN descrevendo o técnicas.
Outra abordagem que eu gostaria de sugerir seria a criação de um tipo de 'Localização Dicionário' estático, e para implementar ICustomTypeDescriptor , para redirecionar vínculos de propriedade de entrada para cordas em seu dicionário. Você pode acabar fazendo algo parecido com isto:
<Button Content="
{Binding Source={x:Static local:MyStaticType.Localization},
Path=HelloButtonTitle}" />
E você poderia continuar a tecnologias de alavancagem existentes tais como os conjuntos RESX + Satélite.