【问题标题】:How can we capture notifications of row deletion in xamDataGrid?我们如何在 xamDataGrid 中捕获行删除通知?
【发布时间】:2011-05-31 06:51:49
【问题描述】:

我们有一个Infragistics xamDataGrid,其DataSource 绑定到一个BindingList。我们在分组标题上设置了一些自定义文本,每次添加或删除项目时都需要重置它。

DataSource 中的项目被删除时是否有通知何时通知,以便我们可以按标题更新组?插入很容易,因为它有一个InitializeRecord event,我们可以使用它来按标题刷新组。我们正在寻找删除的等价物。

请注意,BindingList 在 GUI 中未更新,因此我们无法使用 xamDataGrid 提供的 RecordsDeletingRecordsDeleted 事件。

【问题讨论】:

    标签: c# wpf infragistics xamdatagrid


    【解决方案1】:

    如果数据源是IBindingList,您可以使用与设置数据源的网格相同的事件:ListChanged 事件。或者,如果您的数据源也实现了INotifyCollectionChanged,您可以使用CollectionChanged 事件。

    为此,您只需在设置数据源的同一段代码中订阅事件。比如:

    dataSource.ListChanged += DataSource_ListChanged;
    

    你会在你的处理程序中得到这些信息:

    是这样描述的:

    NewIndex 属性指示添加、更改或删除的项目的索引。如果项目被移动,NewIndex 属性表示项目的新位置,OldIndex 属性表示旧位置。

    【讨论】:

    • 谢谢瑞克。您是否认为有一种方法可以避免在 BindingList 中设置东西并纯粹在视图中处理它(可能是可删除的,但标题是视图的东西)?只是想看看是否有更清洁的方法。
    • @Daisuke:利用视图模型从视图中生成的事件视图的一部分。变更通知是所有数据绑定基础的重要组成部分。它在那里明确供视图使用。话虽如此,有时更改通知会被“重新打包”并提供给视图的其他部分。如果这些活动满足您的需求,那也没关系。但是,如果他们不这样做,请不要犹豫,将更改通知机制用于您自己的目的,就像我们在这个问题中所做的那样。它使您能够在不牺牲松散耦合的情况下获得所需的事件!
    猜你喜欢
    • 2018-07-18
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多