WPF - Como combinar DataTrigger e Trigger?
NOT Eu fiz a pergunta relacionada:Como combinar DataTrigger e EventTrigger?
Tenho uma caixa de listagem contendo vários itens. A classe do item implementaINotifyPropertyChanged
e tem uma propriedadeIsAvailable
. Eu uso essa propriedade para indicar opções indisponíveis na lista usando uma cor diferent
No entanto, se um item selecionado não estiver disponível, a cor do primeiro plano deverá ser vermelh
<ListBox>
<ListBox.Resources>
<DataTemplate DataType="{x:Type local:InstitutionViewModel}">
<TextBlock Name="Name" Text="{Binding Name}"/>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding IsAvailable}" Value="False">
<Setter TargetName="Name" Property="Foreground" Value="#888"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.Resources>
</ListBox>
Utilizo o gatilho de dados acima para esmaecer itens indisponívei
O problema que estou enfrentando é que o fato de o item estar selecionado não tem nada a ver com os dados subjacentes aos quais o modelo está vinculado. O que eu realmente quero é algum tipo de gatilho múltiplo que suporte tanto umTrigger
em uma propriedade de dependência ListBoxItem.IsSelected
) junto com umDataTrigger
no item de dados vinculado.
Isso pode ser feito sem introduzir o conceito de seleção no meu modelo de exibição?
Para quem se pergunta por que não desabilito itens indisponíveis, entenda que é um requisito do aplicativo que as opções indisponíveis possam ser selecionadas. Na verdade, existem algumas caixas de listagem e a seleção de um efeito está disponível nos outros. Não consigo desativar os itens, pois o usuário não poderia mudar de idéia ou explorar combinações diferentes se os itens fossem desativados com base nas seleções anteriore