Раньше для элементов CheckBox я по привычке обрабатывал события Checked и Unchecked в коде программы.
Например при снятии галочки с чекбокса система вызывала событие eventsListReverseDirection_Unchecked, которое я обрабатывал в коде:
private void eventsListReverseDirection_Unchecked(object sender, RoutedEventArgs e)
{
eventsListReverseDirection = false;
}
Однако код подобной сложности лучше перенести в XAML.
Для начала нужно переменную eventsListReverseDirection сделать свойством:
public bool eventsListReverseDirection { get; set; }
Потом нужно для свойства DataContext указать источник данных — главное окно
public MainWindow()
{
this.InitializeComponent();
this.DataContext = this;
}
Теперь можно делать привязку в XAML:
<MenuItem x:Name="mnuEventsListReverseDirection" Header="New events at top"
IsCheckable="True" IsChecked="{Binding eventsListReverseDirection}"/>
Стоит отметить, что все изменения отражаются от интерфейса в код, но не наоборот. Т.е. если в коде мы поменяем значение eventsListReverseDirection на значение true, то в чекбоксе галочка не проставится. Чтобы отлавливать изменения свойства eventsListReverseDirection, нужно реализовывать интерфейс INotifyPropertyChanged и вызывать событие PropertyChanged.
DenTNT недавно публиковал (посмотреть все)
- C#: Сравнить два массива - 12.12.2024
- EVE-Online: Фильтры каналов - 23.11.2024
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024