将此绑定到我的对象时,基类属性丢失了:
<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 - 我发现当我检查一个覆盖了基本属性的类时,它会阻止所有基类属性显示在属性网格中。
现在进一步研究,但我没有解决方案。
答案 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>
答案 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; }
}