[英]How do you bind the checkmarks of submenus in a context menu defined externally?
[英]How do you bind Icons to context menu defined in the resources
我想將圖標綁定到WPF數據網格中的上下文菜單項。 盡管這對於數據網格本身中的上下文菜單(在數據網格中的空白區域上單擊鼠標右鍵)可以正常工作,但不適用於數據網格中的項目(在數據行上單擊鼠標右鍵)。 任何想法為什么這不起作用? 感謝您的回答。
碼:
datagridTarget.DataContext = contextIcons;
// contextIcons contains the icon elements
XAML:
<DataGrid Name="datagridTarget">
<DataGrid.Resources>
<ContextMenu x:Key="DGTContextMenu">
<MenuItem Header="Delete" Click="datagridTargetDelete_Click">
<MenuItem.Icon>
<Image Height="16" Width="16" Source="{Binding ContextDeleteIcon}"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</DataGrid.Resources>
<ContextMenuService.ContextMenu>
<ContextMenu>
<MenuItem Header="Delete" Click="datagridTargetDelete_Click">
<MenuItem.Icon>
<Image Height="16" Width="16" Source="{Binding ContextDeleteIcon}"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</ContextMenuService.ContextMenu>
<DataGrid.Columns>
<DataGridTemplateColumn Header="" Width="Auto" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image ContextMenu="{DynamicResource DGTContextMenu}" Height="16" Width="16" Source="{Binding ObjectImage}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
DataGrid中的項目通常每個都有一個不同的DataContext來表示每個項目。 例如,對於綁定到“人員”類列表的DataGrid,每行代表每個人。
如果要綁定到父DataContext,則需要使用更高級的綁定語法,例如:
{Binding DataContext.ContextDeleteIcon, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.