WPF - 绑定列表<person>多态性

时间:2017-04-21 12:05:33

标签: wpf datagrid

我设法创建了一个网格,并用通用List的数据填充它。例如Person。但在此列表中,例如ManWomen。如何在网格中添加新行?我知道,我必须将它保存到列表但不知道如何。

示例XAML:

    <dxg:GridControl SelectedItem="{Binding SelectedItem}"  Name="Persons" Grid.Column="0" Grid.Row="0" AutoGenerateColumns="AddNew" EnableSmartColumnsGeneration="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding model.personList}">
        <dxg:GridControl.View>
            <dxg:TableView EditFormShowMode="Dialog" AllowPerPixelScrolling="True" NewItemRowPosition="Bottom" ShowTotalSummary="false" 
                           AllowEditing="True" InitNewRow="TableView_InitNewRow" ValidateRow="TableView_ValidateRow" InvalidRowException="TableView_InvalidRowException" />
        </dxg:GridControl.View>
    </dxg:GridControl>

Der Person类是抽象的,并且具有例如属性名称。男人和女人都有其他属性(例如)。

1 个答案:

答案 0 :(得分:1)

如果您将ItemsSource的{​​{1}}设置或绑定到DataGrid,则只需将ObservableCollectionMan的实例添加到此集合即可。

WomanList<T>之间的区别在于后者实现了INotifyCollectionChanged界面,这意味着ObservableCollection<T>将在添加新项目时自动更新或除去。

DataGrid