【问题标题】:Receive RaisePropertyChanged in Viewmodel (MVVM Light)在 Viewmodel 中接收 RaisePropertyChanged (MVVM Light)
【发布时间】:2012-05-29 13:34:20
【问题描述】:

我得到了这个数据结构:

12 个测量,每个测量包含 1-x 个单元,每个单元包含 1-x 个站。每次测量的细胞/站数量相同。

因此我有一个测量、一个单元和一个站类。这 3 个中的每一个都实现了 ObservableObject 类。

在我的视图中,我为每个测量创建了一个 Itemscontrol 以显示测量的所有单元格。每个 Item 都包含一个 Items 控件,用于在 Textboxes 中显示所有 Stations。

现在我需要第 13 次测量,在其中计算所有测量中每个站的总和。 (所有 12 次测量的单元 1 中的站 1)。

目前我的 Viewmodel 只包含一个带有 12 个基本测量值的 Observable 集合。

如何检测 Station-Textbox 的值是否已更改以及哪个 Station 已更改?

【问题讨论】:

    标签: c# wpf mvvm mvvm-light


    【解决方案1】:

    如果您希望 UI 不仅在从集合中添加/删除项目时刷新,而且在项目引发 PropertyChanged 时刷新,请使用 BindingList 而不是 ObservableCollection
    它将引发ListChanged 事件,您可以收听该事件以获取更多信息。

    除非您想要一些 .Net 事件地狱,否则不要直接收听 PropertyChanged。

    HTH,

    巴布。

    【讨论】:

      【解决方案2】:

      您可以锁定 ViewModel 中每个 Station 的 PropertyChanged 事件。这是ObservableObject 中的一个事件处理程序,只要属性被修改就会触发(INotifyPropertyChanged 接口的一部分)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-09
        • 2012-07-14
        • 2014-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多