Сброс SelectedItem в Listbox, привязанном к RelayCommand в ViewModel - PullRequest
1 голос
/ 10 июня 2011

Используя поведение EventToCommand, которое поставляется с MVVM Light, я связываю SelectedItem ListBox с RelayCommand в ViewModel

Все прекрасно работает в моем приложении Windows Phone 7, за исключением того, что после перехода от View сзатем ListBox обратно SelectedItem такой же, как и раньше.Не то, что я хочу.

Я пытался сбросить выбранный индекс при переходе, но это вызывает повторный запуск Команды.

Кто-нибудь еще решил эту проблему и как?

TIA

Патрик Лонг

Ответы [ 3 ]

1 голос
/ 10 июня 2011

Я обрабатываю это простой проверкой в ​​начале каждого обработчика. Предполагая, что вы поддерживаете только один выбор элементов, вы можете проверить, есть ли добавленный элемент.

if (e.AddedItems.Count == 1)
{
    // Your code here
}

(где e - это экземпляр SelectionChangedEventArgs.)

Если выбор был удален, список AddedItems будет пустым, но вместо него будет заполнен список RemovedItems.

0 голосов
/ 01 июля 2011

Я отказался от использования события SelectionChanged. Теперь я делаю все это с TapGestures. Недостатком этого является то, что TapGesture не работает с поведением EventToCommand, поэтому я перехватываю событие Gesture в представлении и запускаю команду, связанную с DataContext отправителя.

ИМХО, это намного лучше, чем использовать SelctionChanged и копаться в SelectedIndexes.

0 голосов
/ 10 июня 2011

Поскольку вы используете mvvm light, вы не можете вызвать метод clear в ViewModelLocator для конкретной модели вида?

...