将所选行事件连接到mvvmlight命令

Aga*_*res 3 wpf wpfdatagrid

我正在编写WPF应用程序,即使用MVVMLight.我有一个DataGrid,我想连接选择行命令的事件.这很容易.硬(当然对我而言)部分是获取与所选行连接的实体.我怎样才能做到这一点?

San*_*ock 7

你有很多方法可以做到这一点.

第一个是将所选行作为命令参数传递.您可以通过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>
Run Code Online (Sandbox Code Playgroud)

您还可以在视图模型中创建选定的项属性,并将其绑定到控件.

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