Пытаюсь воспользоваться механизмом поведения, однако не могу правильно прописать аргументы в методе во ViewModel. Использую ListBox состоящий из item включающих в себя CheckBox, собственно перепробовал разные комбинации входных параметров метода, но никак не могу получить объект Item из ListBox при снятии галочки у CheckBox
XAML
C#
public void PropertyUnchecked()
{
MessageBox.Show("Unchecked");
}
в итоге получаю ошибку:
Thrown: "Could not find method named 'PropertyChecked' on object of
type 'CheckedListItem 1' that matches the expected
signature."(System.ArgumentException) Exception Message = "Could not
find method named 'PropertyChecked' on object of type
'CheckedListItem`1' that matches the expected signature.", Exception
Type = "System.ArgumentException", Exception WinRT Data = null
Исходя из сообщения, я посчитал, что метод в коде ViewModel не имеет нужных входных параметров (CheckedListItem
[1]
public void PropertyUnchecked(CheckedListItem
[2]
public void PropertyUnchecked(object sender, RoutedEventArgs e)
{
MessageBox.Show("Unchecked");
}
[3]
public void PropertyUnchecked(object sender)
{
MessageBox.Show("Unchecked");
}
Также поэкспериментировал с разметкой:
С такой разметкой заработал пустой C# метод, а также [2] и [3], однако ничего кроме CheckBox и его свойств как элемента (в sender) мне не пришло, но нужен именно Item в котором сидит объект типа CheckedListItem
Ответ
Я получил ответ на свой вопрос, звучит он так:
This is probably what you're looking for:
public void PropertyUnchecked(object sender, RoutedEventArgs e)
{
var item = ((ContentPresenter)((CheckBox)e.Source).TemplatedParent).Content as CheckedListItem
Собственно сам вопрос и ответы доступны по ссылке: Вопрос и ответ
Комментариев нет:
Отправить комментарий