继承可能会导致DataGrid中的AutoGenerateColumns属性出现问题?

时间:2012-03-13 10:59:03

标签: c# wpf xaml datagrid autogeneratecolumn

我只是偶然发现了WPF中DataGrid的行为,坦率地说我不知道​​我做错了什么或它是WPF DataGrid的标准行为。

所以我有一个界面,我们称之为IItem。 IItem有几个属性(Name,Active,Timestamp)。这个接口继承自其他接口,我们称之为IBaseItem。 IBaseItem还具有属性(Id,Selected,Active,Timestamp)。所以我希望当我在XAML中使用DataGrid创建AutoGenerateColumns=true并且绑定源是List<IItem>时,它也会生成Id和Selected列。

相反,它只生成Name,Active和Timestamp属性作为列。并且名称不可编辑(尽管它具有setter属性)但Active是。

public interface IBaseItem : INotifyPropertyChanged
{
    bool Selected { get; set; }
    int Id { get; }
    bool Active { get; set; }
            DateTime Timestamp { get; set;}
}

public interface IItem: IBaseItem, IEditableObject
{
    string Name { get; set; }
    new bool Active { get; set; }
    new DateTime Timestamp { get; }
}

但是,如果我打破继承链并将IItem作为单独的界面,那么名称就变得可编辑了。

我不明白为什么继承会弄乱事情。谁能开导我?

0 个答案:

没有答案