MultiBinding И MultiTrigger - PullRequest
       0

MultiBinding И MultiTrigger

0 голосов
/ 20 декабря 2011

... Итак, у меня есть 2 элемента, я хочу, чтобы свойство IsChecked checbox было привязано к моему Свойство IsAlwaysOn, которое находится в моем объекте My Class (Two Way), а также в свойствах выбранного значения, заданного для элемента combox, где, если значение равно 'enter', то IsChecked имеет значение false, есть идеи?

1 Ответ

0 голосов
/ 20 декабря 2011

Вы можете сделать это с помощью DataTrigger, однако я бы не рекомендовал это делать, потому что значение CheckBox не всегда сохранялось бы в MyClass.IsAlwaysOn

<Style x:Key="MyCheckBoxStyle" TargetType="{x:Type CheckBox}">
    <Setter Property="IsChecked" Value="{Binding IsAlwaysOn}" />
    <Style.Triggers>
        <DataTrigger Binding="{Binding ElementName=MyComboBox, Path=SelectedValue}" Value="Enter">
            <Setter Property="IsChecked" Value="False" />
            <Setter Property="IsEnabled" Value="False" />
        </DataTrigger>
</Style>

Вместо этого я бы порекомендовал обрабатывать это вPropertyChange уведомление в MyClass.Чтобы предотвратить изменения, я бы либо включил в MyClass свойство, определяющее, можно ли изменить CheckBox, или отключил CheckBox в триггере, как указано выше.

void MyClass_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    if (e.PropertyName == "SelectedComboBoxItem")
    {
        if (SelectedComboBoxItem == "Enter")
        {
            IsAlwaysOn = false;
            CanChangeCheckBox = false;
        }
        else
        {
            CanChangeCheckBox = true;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...