我在C#WPF中使用Infrastics的"XamPropertyGrid",我创建了两个类如下:
public class ClassA
{
public ClassB B { get; set; }
}
public class ClassB
{
public bool C { get; set; }
}
目标是为PropertyGrid创建一个自定义编辑器,该编辑器包含一个复选框控件并设置ClassA 实例的属性B.C
这是我的xaml代码:
<ig:XamPropertyGrid x:Name="pGrid">
<ig:XamPropertyGrid.EditorDefinitions>
<ig:PropertyGridEditorDefinition>
<ig:PropertyGridEditorDefinition.TargetProperties>
<system:String>B</system:String>
</ig:PropertyGridEditorDefinition.TargetProperties>
<ig:PropertyGridEditorDefinition.EditTemplate>
<DataTemplate>
<CheckBox Content="XYC" IsChecked="{Binding Value.C}"></CheckBox>
</DataTemplate>
</ig:PropertyGridEditorDefinition.EditTemplate>
</ig:PropertyGridEditorDefinition>
</ig:XamPropertyGrid.EditorDefinitions>
</ig:XamPropertyGrid>
一开始,我为PropertyGrid设置了这样的选定对象:
public MainWindow()
{
InitializeComponent();
ClassA a = new ClassA();
a.B = new ClassB();
pGrid.SelectedObject = a;
}
但是当我选中复选框时,属性C不会改变。到我调试时为止,编辑器DataTemplate中的Value属性为null。(我在Binding里面放了一个转换器来检查。)
提前谢谢。
这似乎只是XamPropertyGrid中的一个错误,您所需要做的就是更新到版本2015.2