Xceed右键单击扩展了WPF数据网格选择行

时间:2018-02-06 14:05:07

标签: wpf contextmenu selecteditem right-click xceed-datagrid

我正在尝试向Xceed扩展WPF数据网格添加上下文菜单。我能够从菜单中显示上下文菜单和命令,但右键单击一行不会将其设置为所选行,因此命令使用了错误的记录。

有没有办法更改所选项目的设置方式,以便通过右键单击更新?

<xcdg:DataGridControl ItemsSource="{Binding Source={StaticResource RecordsForList}}" SelectedItem="{Binding SelectedRecord}">
    <xcdg:DataGridControl.ContextMenu>
        <ContextMenu>
            <MenuItem Command="{Binding OpenCommand}" Header="Open" />
        </ContextMenu>
    </xcdg:DataGridControl.ContextMenu>
</xcdg:DataGridControl>

1 个答案:

答案 0 :(得分:1)

如果您设置每个人myApp.version 的{​​{1}}属性,则可以将当前项目作为命令参数传递给命令,而不是更改选择项目的方式:

ContextMenu

另一种选择是在视图中编写一些实际选择右键单击项目的代码,例如:

DataRow
<xcdg:DataGridControl ItemsSource="{Binding Source={StaticResource RecordsForList}}" SelectedItem="{Binding SelectedRecord}">
    <xcdg:DataGridControl.ItemContainerStyle>
        <Style TargetType="xcdg:DataRow">
            <Setter Property="Tag" Value="{Binding DataContext, RelativeSource={RelativeSource AncestorType=xcdg:DataGridControl}}" />
            <Setter Property="ContextMenu">
                <Setter.Value>
                    <ContextMenu>
                        <MenuItem Command="{Binding PlacementTarget.Tag.OpenCommand, RelativeSource={RelativeSource AncestorType=ContextMenu}}"
                                  CommandParameter="{Binding}" Header="Open" />
                    </ContextMenu>
                </Setter.Value>
            </Setter>
        </Style>
    </xcdg:DataGridControl.ItemContainerStyle>
</xcdg:DataGridControl>