Xceed PropertyGrid AdvancedOptionsMenu上下文菜单示例

时间:2017-06-23 17:32:12

标签: wpf propertygrid xceed

我试图获得一个"复制"单击任何属性的高级选项图标时显示的上下文菜单。我需要添加什么才能使其正常工作?

<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;要显示的上下文项,并单击该属性是否为只读。

1 个答案:

答案 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