XCeed Propertygrid:HideInheritedProperties =" False"不显示继承的属性

时间:2017-05-16 21:07:25

标签: wpf propertygrid xceed

将此绑定到我的对象时,基类属性丢失了:

<xctk:PropertyGrid x:Name="_propertyGrid"                           
  AutoGenerateProperties="True"                             
  HideInheritedProperties="False"
    SelectedObject="{Binding}" >
    </xctk:PropertyGrid>

我还需要添加其他内容才能看到它们吗? 这是社区的补充 - v3.0

**update - example more akin to the production code:

<TreeView Name="Containers">
<TreeView.ItemTemplate>

<HierarchicalDataTemplate DataType="{x:Type viewModels:ContainerViewModel}" ItemsSource="{Binding Children}">

<xctk:PropertyGrid
Width="250"
ShowTitle="False"
ShowSummary="False"
AutoGenerateProperties="True" 
HideInheritedProperties="False"
SelectedObject="{Binding}" 
SelectedObjectName=""
SelectedObjectTypeName="">

</xctk:PropertyGrid>


</HierarchicalDataTemplate>
</TreeView

** update - 我发现当我检查一个覆盖了基本属性的类时,它会阻止所有基类属性显示在属性网格中。

现在进一步研究,但我没有解决方案。

2 个答案:

答案 0 :(得分:2)

  

我还需要添加其他内容才能看到它们吗?

确保属性为public。以下适用于我。

<强>代码:

public class Base
{
    public int Test { get; set; }
}

public class Derived : Base
{
    public int Test2 { get; set; }
}

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        DataContext = this;
    }

    public Derived Derived { get; } = new Derived();
}

<强> XAML:

<xctk:PropertyGrid x:Name="_propertyGrid"                           
                   AutoGenerateProperties="True"                             
                   HideInheritedProperties="False"
                   SelectedObject="{Binding Derived}" >
</xctk:PropertyGrid>

enter image description here

答案 1 :(得分:-1)

在我继承的重写属性中,只在属性覆盖中提供了set或get。当我将缺少的getter或setter添加到重写属性时,它修复了问题:

public override double Height {
    get {
    //this get is necessary for the design
    }

    //adding set is necessary for Height to be visible
    set { base.Height = value; }
}