[英]How to using from ContextMenu in a gridCell?
I have a CustomControl like this: 我有一个这样的CustomControl:
<Button Name="b" Height="20" Click="b_Click" Content="operation" Width="60">
<Button.ContextMenu>
<ContextMenu>
<MenuItem Header="Copy"></MenuItem>
<MenuItem Header="cut"></MenuItem>
<MenuItem Header="delete"></MenuItem>
</ContextMenu>
</Button.ContextMenu>
</Button>
in CodeBehind ia have : 在CodeBehind ia中:
if (b.ContextMenu != null && b.ContextMenu.IsOpen == false)
{
b.ContextMenu.PlacementTarget = b;
b.ContextMenu.Placement = System.Windows.Controls.Primitives.PlacementMode.Bottom;
ContextMenuService.SetPlacement(b, System.Windows.Controls.Primitives.PlacementMode.Bottom);
b.ContextMenu.IsOpen = true;//I have error in this Line
}
I use from my conrol in a DataGrid Cell ...when i click on my button i get an error in this line 我在DataGrid单元中的控制中使用...当我单击按钮时,此行出现错误
b.ContextMenu.IsOpen = true;
"ContextMenu" cannot have logical or visual parent
“ ContextMenu”不能具有逻辑或可视父级
how can i resolve this erorr 我该如何解决这个问题
A sample of working app, hope this gives you required clue... 一个可运行的应用程序示例,希望它能为您提供所需的提示...
<DataGrid Margin="0,0,195,72" x:Name="A">
<DataGrid.Resources>
<ContextMenu x:Key="ContextMenu">
<MenuItem Header="Copy" Click="MenuItem_Click"></MenuItem>
<MenuItem Header="cut" Click="MenuItem_Click"></MenuItem>
<MenuItem Header="delete" Click="MenuItem_Click"></MenuItem>
</ContextMenu>
</DataGrid.Resources>
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="ContextMenu" Value="{StaticResource ContextMenu}">
</Setter>
</Style>
</DataGrid.CellStyle>
<DataGrid.Columns>
<DataGridTextColumn Header="A" Binding="{Binding}">
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.