Итак, у меня есть класс, к которому я хочу привязаться:
public class Awesome {
public bool OptionA1 { get; set; }
public bool OptionA2 { get; set; }
public bool OptionB1 { get; set; }
public bool OptionB2 { get; set; }
}
Когда я открываю этот класс в своем графическом интерфейсе, у меня есть две переключатели (называемые radioButtonA и radioButtonB), которые позволяют пользователю выбирать между группамиА и В, и у меня есть два флажка, чтобы позволить пользователю изменять А1 / А2 и В1 / В2 соответственно в зависимости от того, какая радиокнопка проверена.
Логика в классе технически не различает А и В, как ясделать на моем графическом интерфейсе.Поэтому, если OptionA1 == True и OptionB1 == True, класс будет выполнять поведение для OptionA1 и B1, как и ожидалось.
Тем не менее, Я хочу представить группы A и B как исключительные или: это означает, что если для OptionA1 или OptionA2 задано значение true, OptionB1 и OptionB2 оба должны быть ложными.И наоборот.
Следующая привязка автоматически переназначает / перепривязывает флажок в зависимости от того, какая радиопереключатель / группа отмечена, но она не обеспечивает исключительную или взаимосвязь между группами.Таким образом, пользователь может нажать RadioButtonA и установить оба флажка.Если пользователь затем нажимает RadioButtonB, OptionA1 и OptionA2 по-прежнему имеют значение true (как и ожидалось).Как автоматически установить для них значение false при проверке RadioButtonB?
<CheckBox Content="Do Option 1">
<CheckBox.Style>
<Style TargetType="CheckBox">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=radioButtonA, Path=IsChecked}" Value="True">
<Setter Property="IsChecked">
<Setter.Value>
<Binding Path="OptionA1" Mode="TwoWay"/>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=radioButtonB, Path=IsChecked}" Value="True">
<Setter Property="IsChecked">
<Setter.Value>
<Binding Path="OptionB1" Mode="TwoWay"/>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</CheckBox.Style>
</CheckBox>