, поэтому я пытаюсь использовать элемент управления CheckBox с MVVM logi c. Однако единственным существующим событием является CheckedChanged, которое также срабатывает, если я, например, перемещаюсь по странице.
Я ищу событие Clicked, как у кнопки.
Нужно ли мне создать пользовательский элемент управления с пользовательским средством визуализации, или есть лучшее решение?
Жду ответов.
[РЕДАКТИРОВАТЬ]
Чтобы предоставить больше информации о моей проблеме, я приведу примеры кода ниже.
Мои флажки находятся внутри ListView. Каждый CheckBox определяется следующим образом в XAML:
<CheckBox
IsChecked="{Binding IsCompleted}">
<CheckBox.Behaviors>
<prism:EventToCommandBehavior
EventName="CheckedChanged"
Command="{Binding SubTaskStateChangedCommand}"/>
</CheckBox.Behaviors>
</CheckBox>
ItemSource объекта ListView имеет свойство IsCompleted и DelegateCommand SubTaskStateChangedCommand. Стоит отметить, что я использую Prism.
В конструкторе:
SubTaskStateChangedCommand = new DelegateCommand(OnSubTaskStateChangedCommandExecuted);
Класс SubTaskModel:
public DelegateCommand SubTaskStateChangedCommand { get; set; }
private void OnSubTaskStateChangedCommandExecuted()
{
//Do something
}
private bool _isCompleted;
public bool IsCompleted
{
get { return _isCompleted; }
set { _isCompleted = value; OnPropertyChanged(); }
}
Поэтому, когда я перехожу на другую страницу в мой ViewModel с использованием Prism NavigationService, метод OnSubTaskStateChangedCommandExecuted срабатывает. Однако я заметил, что когда это происходит, значение IsCompleted НЕ изменяется.