Триггер WPF, когда Значение свойства и Значение данных верны

Я должен смочь измениться Style из управления, когда значение свойства и значение данных верны. Например, мои связанные данные имеют IsDirty свойство. Я хотел бы изменить цвет фона своего управления когда IsDirty верно, И управление выбрано. Я нашел MultiTrigger и MultiDataTrigger классы..., но в этом случае я должен так или иначе включить данные и свойство. Как я могу сделать это?

Другое примечание: Я должен смочь сделать это в коде позади не XAML.

6
задан Anatoliy Nikolaev 20 July 2013 в 13:52
поделиться

2 ответа

MultiDataTrigger работает для DependencyProperties так же хорошо, как и для обычных свойств. Просто установите Path в привязке к имени вашего свойства зависимости.

Вы должны быть осторожны с установкой источника этой привязки, поскольку по умолчанию источником является DataContext элемента, к которому привязан триггер. Если триггер используется в стиле для выбираемого объекта, вы можете использовать свойство RelativeSource Binding:

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
      <Condition Binding="{Binding Path=IsDirty}" Value="True" />
      <Condition Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Self}}" Value="True" />
    </MultiDataTrigger.Conditions>
    <Setter Property="Background" Value="Cyan" />
  </MultiDataTrigger>
12
ответ дан 9 December 2019 в 20:40
поделиться

Вот как я на самом деле сделал это в коде программной части:

new MultiDataTrigger
{
    Conditions = 
    {
        new Condition
        {
            Binding = new Binding("IsDirty"),
            Value = true
        },
        new Condition
        {                                                    
            Binding = new Binding("IsSelected") { RelativeSource = RelativeSource.Self },
            Value = true
        }
    },

    Setters =
    {
        new Setter
        {
            Property = Control.BackgroundProperty,
            Value = Brushes.Pink
        }
    }
}
0
ответ дан 9 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: