【发布时间】:2013-10-11 17:32:03
【问题描述】:
在 WPF .Net 4 应用程序中有一个主详细信息情况,其中数据网格具有可以具有在具有内部数据网格的 RowDetailsTemplate 中找到的详细信息的行。
在 RowDetailsTemplate 内是一个网格,用于保存具有上下文菜单的子详细信息。发现的问题是,当绑定详细信息的 MenuItem 之一的 CommandTarget 时,我无法将 详细信息数据网格定位为 由模板生成。下面的绑定最终得到主数据网格,而不是包含详细信息/上下文菜单的包含数据网格。
<DataGrid x:Name="dgEditScript" ItemsSource="{Binding CurrentScript}">
<DataGrid.CommandBindings>
<CommandBinding Command="commands:ScriptingCommands.SetChecked"
Executed="CheckAllAfter" />
</DataGrid.CommandBindings>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<DataGrid ItemsSource="{Binding SubCommands}">
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Header="Check All From Selected"
Command="commands:ScriptingCommands.SetChecked"
CommandTarget="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}">
<MenuItem.Icon>
<Image Source="Images/checkboxes.png" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</DataGrid.ContextMenu>
</DataGrid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
使用上述 Realtive 源绑定时的问题,它给了我 dgEditScript 网格(顶层)而不是上下文菜单的父级,即启动上下文菜单的未命名的持有 DataGrid。
如何获取绑定中的子网格;以上下文菜单的父级为目标?
【问题讨论】:
标签: wpf xaml binding .net-4.0 datagrid