【问题标题】:Update XAML binding on CollectionChanged with ObservableCollection使用 ObservableCollection 更新 CollectionChanged 上的 XAML 绑定
【发布时间】:2016-02-22 16:13:48
【问题描述】:

我正在使用 MVVM Light 开发 Xamarin(Android、iOS、WP 8.1 RT)应用程序。我的 ViewModel 有 2 个ObservableCollections,所以我对 WP 的看法也包含 2 个ListViews

假设 OC1 绑定到 LV1,OC2 绑定到 LV2。

第一个 OC 永远不会为空。 第二个 OC 几乎总是空的。

我想做以下事情:

  • OC2为空时:显示LV1,隐藏LV2
  • 当 OC2 不为空时:隐藏 LV1 和显示 LV2

我尝试使用转换器将ListViewsVisibility 属性绑定到OC2,该转换器根据给定集合中的项目数量返回Visibility.CollapsedVisibility.Visible

这最初是可行的,但在 OC2 中添加或删除项目时,可见性不会更新。仅在使用 OC2 的 setter 时有效(仅在初始化时)。

这个问题不是 this one 的重复问题,因为我宁愿只使用 XAML 绑定或对我的 ViewModel 进行小的修改,尽可能少地隐藏代码。

【问题讨论】:

  • 您是否尝试过订阅 OC2 的 CollectionChanged 事件并从那里调用 OnPropertyChanged(nameof(OC2))?

标签: c# xaml mvvm


【解决方案1】:

感谢@3615,已修复!

ViewModel

OC2.CollectionChanged += (sender, args) => RaisePropertyChanged(() => OC2);

【讨论】:

    猜你喜欢
    • 2011-06-06
    • 2021-01-24
    • 2018-07-05
    • 2023-04-09
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    相关资源
    最近更新 更多