Qual é melhor usar o desempenho sábio? Limitação do Conversor em comparação ao gatilho e vice-versa. Devo limitar o uso do conversor porque pode causar explosão de classe?
Respostas:
5 para resposta № 1Se você está em desenvolvimento TDD, será melhor escolha para ir com conversores.
Se não houver lógica de negócios complexa oulógica a ser aplicada, em seguida, vá para Triggers. Mais uma coisa sobre os conversores é que, há um hit de desempenho associado ao uso de conversores de acordo com Laurent Bugnion (criador do MVVM Light).
Você pode ver mais insights sobre o desempenho atingido neste post. DataTrigger vs ligação de dados com o desempenho do conversor sábio
Você pode obter mais detalhes sobre quando usar o gatilho e quando usar conversores deste post também. Devo usar o conversor ou gatilho do WPF?
A decisão pode ser tomada com base na abordagem de desenvolvimento que você está seguindo ou vai seguir. Eu prefiro envolver o seu modelo de visão em um conceito "WPF Viewmodel" na maioria das vezes.
0 para resposta № 2
Para tipo similar de saída, Triggers
são melhor desempenho sábio em comparação com Converter
. Apesar, conveters
É aconselhável onde você quer que o desenvolvimento seja TDD, pois você pode escrever testes de unidade para o seu código de conversor.
Converters
pode ser usado para gravar conversões complexas que às vezes não são possíveis usando Triggers. Para conversões complexas Converters
pode reduzir o código em vez de escrever séries de Triggers
.
0 para resposta № 3
Na maioria dos cenários, os gatilhos podem executar o mesmo trabalho que qualquer conversor, mas os conversores podem ter lógica personalizada / comercial.
Uma limitação dos Triggers é que Setters emseus DataTriggers só podem alterar as propriedades de seus elementos da interface do usuário; Assim, você não pode atualizar sua propriedade ViewModels com gatilhos, é onde os conversores ganham, lembre-se do método ConvertBack.
Então, em suma Triggers só pode realizar operações OneWay Considerando que os conversores podem realizar operações TwoWay