我试图获得一个"复制"单击任何属性的高级选项图标时显示的上下文菜单。我需要添加什么才能使其正常工作?
<xctk:PropertyGrid
x:Name="PropertyGrid"
Grid.Column="1" Margin="8"
ShowSummary="False"
AutoGenerateProperties="True"
HideInheritedProperties="False"
SelectedObject="{Binding InspectedObject}"
SelectedObjectName="{Binding InspectedObject, Converter={StaticResource PropertyGridPropertyNameConverter}}"
SelectedObjectTypeName="{Binding InspectedObject, Converter={StaticResource PropertyGridPropertyTypeConverter}}"
SelectedObjectChanged="PropertyGrid_OnSelectedObjectChanged"
ShowAdvancedOptions="True"
>
<xctk:PropertyGrid.AdvancedOptionsMenu >
<ContextMenu>
<MenuItem Header="Copy" Click="MenuItem_OnClick"></MenuItem>
</ContextMenu>
</xctk:PropertyGrid.AdvancedOptionsMenu>
</xctk:PropertyGrid>
我喜欢&#34;复制&#34;要显示的上下文项,并单击该属性是否为只读。
答案 0 :(得分:0)
在MenuItem单击事件处理程序中,可以通过发送方对象中的属性DataContext访问属性数据。
private void MenuItem_OnClick(object sender, RoutedEventArgs e)
{
MenuItem menuItem = sender as MenuItem;
if (menuItem != null && menuItem.DataContext is PropertyItem)
{
Clipboard.SetData(DataFormats.Text, ((PropertyItem)menuItem.DataContext).Value);
}
}
在以下链接中,您可以找到有关此主题的更多信息: https://kmatyaszek.blogspot.com/2018/08/extended-wpf-toolkit-propertygrid.html
我注意到当您在AdvancedOptionsMenu图标上单击(鼠标左键)时,此解决方案有效,右键单击属性项会出现问题。为了解决此问题,我分叉了原始存储库,并将复制值菜单项添加到AdvancedOptionsMenu。签出:https://github.com/kmatyaszek/wpftoolkit