一些背景知识:
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; }
}
Base类用作其他几个具有共同属性的类的基础。派生类添加特定于派生类的属性。
在我的视图中,我有一个DataGrid绑定到DerivedClassViewModel
的{{1}}:
BindingList<DerivedClass>
这很好用,我可以在BindingList中添加和删除项目,DataGrid会自动更新以反映这一点。但是,<DataGrid Margin="318,0,0,0" ItemsSource="{Binding BindingList}">
有几个属性(例如DerivedClass
),我不希望在DataGrid中显示这些属性。 如何在仍然使用List<string> F/H
时仅将DerivedClass的某些属性绑定到DataGrid?
答案 0 :(得分:3)
您必须在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。
答案 1 :(得分:0)
@see BindingList(IList)(“构造函数”下的第二项)