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

时间:2011-06-05 10:14:55

标签: wpf wpfdatagrid

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

1 个答案:

答案 0 :(得分: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>

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

<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
        }
    }
}