WPF Toolkit DataGrid MultiSelect с MVVM - PullRequest
2 голосов
/ 17 ноября 2009

Мы используем WPF DataGrid из WPF Toolkit и используем MVVM. Я нахожу некоторые проблемы при использовании MultiSelect в MVVM и уверен, что мне просто не хватает чего-то простого. Я могу использовать IsSelected в ViewModel, чтобы получить событие при выборе строки в DataGrid. Это прекрасно работает для одного выбора.

Если я установлю «SelectionMode = Extended», я все равно получу событие только при выборе первой строки в DataGrid. Выбор кода в codebehind получает каждое событие выбора, но я действительно хочу, чтобы это работало в ViewModel. Вероятно, есть простое решение для этого multiSelect, которое мне просто не хватает. Я также попытался связать SelectedItems (множественное число) с коллекцией, чтобы получить все это, но SelectedItems только для чтения, поэтому он не может быть связан с. Я уверен, что буду признателен за любые идеи о том, как это сделать, поскольку я не могу переместить этот метод из кодовой области в ViewModel.

1 Ответ

2 голосов
/ 17 ноября 2009

Вы можете прослушать событие SelectionChanged в файле code-behind и делегировать вызов ViewModel.

Шаблон M-V-VM не собирается удалять ВСЕ код из файла выделенного кода. Речь идет о разделении интересов - поместить логику представления в ViewModel и позволить представлению быть настолько глупым, насколько это возможно.

Если вас интересует конкретный пример, вы можете взглянуть на пример ViewModel WPF Application Framework (WAF) .

Надеюсь, это поможет.

...