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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top