Подключение выбранного события строки к команде mvvmlight - PullRequest
3 голосов
/ 05 июня 2011

Я пишу приложение WPF, использующее MVVMLight. У меня есть DataGrid, и я хочу подключить событие выбора строки для команды. Это легкая часть. Сложная (для меня, конечно;]) часть - получить сущность, связанную с выбранной строкой. Как я могу это сделать?

1 Ответ

7 голосов
/ 05 июня 2011

У вас есть много способов сделать это.

Первый - передать выбранную строку в качестве параметра команды. Вы можете сделать это с помощью XAML или с помощью кода.

<GridView x:Name="gv">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="SelectionChanged">
            <i:InvokeCommandAction Command="{Binding SelectedRowCommand}"
                                   CommandParameter="{Binding Path=SelectedItem, ElementName=gv}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
</GridView>

Вы также можете создать выбранное свойство элемента в модели представления и привязать его к элементу управления.

<GridView x:Name="gv" SelectedItem="{Binding SelectedRow, Mode=TwoWay}">
</GridView>
public class MyViewModel
{
    public RowType SelectedRow
    {
        get { return _selectedRow; }
        set
        {
            _selectedRow = value;
            // selection changed, do something here
        }
    }
}
...