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