Мы используем DataGrid WPF из набора инструментов WPF и используем MVVM. Я нахожу некоторые проблемы при использовании MultiSelect в MVVM и уверен, что я просто пропустил что-то простое. Я могу использовать «IsSelected» в ViewModel, чтобы получить событие при выборе строки в DataGrid. Это отлично подходит для одного выбора.WPF Toolkit DataGrid MultiSelect с MVVM
Если я установил «SelectionMode = Extended», я до сих пор получаю событие только при выборе первой строки в DataGrid.SelectionChanged в кодовом блоке получает каждое событие выбора, но я действительно хочу сделать эту работу в ViewModel. Вероятно, это простое решение для этого multiSelect, которое я просто пропустил. Я также попытался связать SelectedItems (множественное число) с коллекцией, чтобы получить все из них, но SelectedItems является readonly, поэтому он не может быть связан. Я был бы признателен за любые идеи о том, как это сделать, поскольку я не могу заставить этот метод перемещаться из кода в ViewModel.
Привет - Спасибо за ответ. Да, я знаю, что идея MVVM заключается не в том, чтобы полностью исключить код из кода, но я верю, что есть другие ответы на этот пример, которые не включают код в код позади. Возможно, решение - AttachedBehavior. Я все еще смотрю. –
Я надеялся найти что-то лучшее, но не повезло. Я мог использовать MVVM Toolkit Light с Event To Command, но в итоге просто делегировал из SelectionChanged кода. Еще раз спасибо jbe! –
У меня был успех с EventToCommand MVVM Light Toolkit в составе EventTrigger. Я видел образец Лорана Бугниона и нашел его чрезвычайно полезным: http://blog.galasoft.ch/archive/2009/12/17/silverlight-4-dragampdrop-with-eventtocommand.aspx По общему признанию, у меня нет использовал его в сценарии datagrid ... просто привязан к другим шаблонам данных. –