XCeed Propertygrid: HideInheritedProperties="False" 不显示继承属性
XCeed Propertygrid: HideInheritedProperties="False" does not display inherited properties
当我将它绑定到我的对象时,基础 class 属性丢失了:
<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
**更新 - 我发现当我检查一个覆盖了基本属性的 class 时,它会阻止所有基本 class 属性出现在 属性 网格.
现在正在进一步调查,但我没有解决方案。
Is there something else I need to add to see them?
只需确保属性为 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>
在我继承的重写属性中,属性 重写中只提供了 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; }
}
当我将它绑定到我的对象时,基础 class 属性丢失了:
<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
**更新 - 我发现当我检查一个覆盖了基本属性的 class 时,它会阻止所有基本 class 属性出现在 属性 网格.
现在正在进一步调查,但我没有解决方案。
Is there something else I need to add to see them?
只需确保属性为 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>
在我继承的重写属性中,属性 重写中只提供了 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; }
}