【发布时间】: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
我尝试使用转换器将ListViews 的Visibility 属性绑定到OC2,该转换器根据给定集合中的项目数量返回Visibility.Collapsed 或Visibility.Visible。
这最初是可行的,但在 OC2 中添加或删除项目时,可见性不会更新。仅在使用 OC2 的 setter 时有效(仅在初始化时)。
这个问题不是 this one 的重复问题,因为我宁愿只使用 XAML 绑定或对我的 ViewModel 进行小的修改,尽可能少地隐藏代码。
【问题讨论】:
-
您是否尝试过订阅 OC2 的 CollectionChanged 事件并从那里调用 OnPropertyChanged(nameof(OC2))?