XCeed Propertygrid: HideInheritedProperties=False не отображает унаследованные свойства

Свойства базового класса отсутствуют, когда я привязываю это к своему объекту:

<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

** обновление — я обнаружил, что когда я проверяю класс, который имеет переопределения базовых свойств, он предотвращает отображение всех свойств базового класса в сетке свойств.

Изучаю это сейчас, но у меня нет решения.


person jchristof    schedule 16.05.2017    source источник


Ответы (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>

введите здесь описание изображения

person mm8    schedule 17.05.2017
comment
Мои проверенные типы находятся в дереве и отображаются с использованием TreeView и HierarchicalDataTemplate с DataType={x:Type viewModels:ContainerViewModel}. В моем сценарии я заметил, что унаследованные свойства отображаются только тогда, когда наследующий тип не имеет собственных свойств. Где-то в этом причина. ContainerViewModel — это базовый тип всех объектов. - person jchristof; 17.05.2017
comment
Я соберу репродукцию - я обнаружил, что проблема в моем случае заключается в том, что когда какое-либо унаследованное свойство переопределяется, ни одно из унаследованных свойств не отображается в сетке. - person jchristof; 17.05.2017

В моих унаследованных переопределенных свойствах в переопределении свойства был предоставлен только набор или получение. Когда я добавил отсутствующий геттер или сеттер в переопределенное свойство, это решило проблему:

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; }
}
person jchristof    schedule 17.05.2017