只有的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; } 
} 

基类被用作用于其它几类,其都具有共同的属性的位置。派生类添加特定于该派生类的属性。

在我看来,我必须绑定到我的DerivedClassViewModelBindingList<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

+0

我一直希望避免这种情况,但我想它将不得不做。 – Brett

+1

我不知道这是如何帮助我,因为我不得不指定一个只包含我想要的DerivedClass属性的新类型。 – Brett