【发布时间】:2011-02-20 05:03:17
【问题描述】:
我需要创建一个 ContextMenu,我想在其中使用 CommandParameter 将数据网格的当前选定索引传递给 ViewModel。以下 Xaml 代码不起作用。可能是什么问题?
<dg:DataGrid ItemsSource="{Binding MarketsRows}"
<dg:DataGrid.ContextMenu >
<ContextMenu >
<MenuItem Header="Add Divider"
CommandParameter="{Binding Path=SelectedIndex,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type dg:DataGrid}}}"
Command="{Binding Path= AddDividerCommand}"/>
</ContextMenu>
</dg:DataGrid.ContextMenu>
</dg:DataGrid>
【问题讨论】:
-
您在调试应用程序时是否检查过调试控制台?如果这是一个绑定问题,您可能会在那里找到一些用于对其进行故障排除的数据......
-
我确实遇到了绑定错误,我只是不知道如何解决它:System.Windows.Data 错误:4:无法通过引用 'RelativeSource FindAncestor,AncestorType='Microsoft 找到绑定源.Windows.Controls.DataGrid',AncestorLevel='1''。绑定表达式:路径=选定索引;数据项=空;目标元素是'MenuItem'(名称='');目标属性是'CommandParameter'(类型'Object')