是否可以绑定属性的属性? 这就是我所拥有的:
[Bindable(true)]
public class DataClass
{
private string DescriptionValue = null;
private Content DataContent Value = new Content();
....
[Bindable(true)]
public Content DataContent
{
get { return DataContent; }
set { DataContent = value; }
}
[Bindable(true)]
public string Description
{
get { return DescriptionValue; }
set { DescriptionValue = value; }
}
...
}
[Bindable(true)]
public class Content
{
private object ContentValue = null;
private Color StateBackColorValue;
...
[Bindable(true)]
public object Content
{
get { return ContentValue; }
set { ContentValue = value; }
}
[Bindable(true)]
public Color StateBackColor
{
get { return StateBackColorValue; }
set { StateBackColorValue = value; }
}
...
}
是否可以将控件绑定到DataContent.Content或Content类的任何其他属性?我知道我可以在DataContent类中引入映射Content类属性的属性。我只是想知道是否可以使用属性进行分层数据绑定。
答案 0 :(得分:1)
你在做什么类型的数据绑定?
使用简单绑定(例如TextBox.Text
到单个对象),是的,您可以使用“Foo.Bar.SomeProp”作为成员。对于PropertyGrid
,您可以使用[TypeConverter(typeof(ExpandableObjectConverter))]
标记对象,它将起作用。
棘手的是列表绑定(DataGridView
等);在这里,不:它不容易变平。如果你去伟大的长度(ITypedList
等),你可以做到这一点,但它确实不值得 - 只需向父级添加填充属性:
public string ChildName {
get {return child == null ? "" : child.Name;} // and setter if you want
}