Como posso fornecer várias condições para acionamento de dados no WPF?
wpf
datatrigger
Sumeru Suresh
fonte
fonte
@jasonk - se você deseja ter "ou", negue todas as condições, pois (A e B) <=> ~ (~ A ou ~ B)
mas se você tiver valores diferentes de booleano, tente usar conversores de tipo:
você pode usar os valores no método Convert da maneira que desejar para produzir uma condição que combina com você.
fonte
conditionConverter
faz? Como estamos especificando "Portland" e "OR" como nossas duasor
opções neste exemplo?Para elaborar a resposta de @ serine e ilustrar o trabalho com uma condição com valores múltiplos não triviais: Eu precisava mostrar uma sobreposição de "escurecimento" em um item para a condição booleana
NOT a AND (b OR NOT c)
.Para implementar essa lógica, criei um genérico
IMultiValueConverter
chamado (sem jeito) para corresponder à minha lógicaNo XAML eu uso isso
MultiDataTrigger
em um<Style><Style.Triggers>
recursoE, para completar, meu conversor é definido em um
ResourceDictionary
fonte
ESTA RESPOSTA É APENAS PARA ANIMAÇÕES
Se você deseja implementar a lógica AND, deve usar o MultiTrigger, aqui está um exemplo:
Suponha que desejemos executar algumas ações se a propriedade Text = "" (string vazia) AND IsKeyboardFocused = "False", então seu código deve ter a seguinte aparência:
Se você deseja implementar a lógica OR, existem duas maneiras, e isso depende do que você tenta fazer:
A primeira opção é usar vários gatilhos.
Então, suponha que você queira fazer algo se Text = "" OR IsKeyboardFocused = "False",
seu código deve ser algo como isto:
Mas o problema é o que farei se eu quiser fazer algo se o texto NÃO for nulo OU IsKeyboard = "True"? Isso pode ser alcançado pela segunda abordagem:
lembre - se da regra de De Morgan, que diz! (! X &&! Y) = x || y
Então, vamos usá-lo para resolver o problema anterior, escrevendo um disparador múltiplo que é disparado quando Text = "" e IsKeyboard = "True", e faremos nossas ações em EXIT ACTIONS , assim:
fonte