只有的BindingList的某些属性绑定到数据网格
问题描述:
一些背景资料:只有的BindingList的某些属性绑定到数据网格
public class Base
{
public string A { get; set; }
public double B { get; set; }
public DateTime C { get; set; }
public string D { get; set; }
}
public class DerivedClass : Base
{
public string E { get; set; }
public List<string> F { get; set; }
public List<string> G { get; set; }
public Image H { get; set; }
}
基类被用作用于其它几类,其都具有共同的属性的位置。派生类添加特定于该派生类的属性。
在我看来,我必须绑定到我的DerivedClassViewModel
的BindingList<DerivedClass>
一个DataGrid:
<DataGrid Margin="318,0,0,0" ItemsSource="{Binding BindingList}">
这工作得很好,我可以添加和删除从的BindingList和DataGrid的项目自动更新以反映这一点。但是,DerivedClass
有几个属性(例如List<string> F/H
),我不希望在DataGrid中显示该属性。 如何在仍使用BindingList<DerivedClass>
的情况下将DerivedClass的某些属性绑定到DataGrid?
答
你必须禁用在DataGrid的AutoGenerateColumns和明确定义列http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.columns(v=vs.100).aspx,或使用AutoGeneratingColumn事件丢弃你不想列(在“建设者”第二项) http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.autogeneratingcolumn(v=vs.100).aspx。
我一直希望避免这种情况,但我想它将不得不做。 – Brett