使用ObservableCollection更新CollectionChanged上的XAML绑定

时间:2016-02-22 07:52:34

标签: c# xaml mvvm

我正在使用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

我尝试使用返回VisibilityListViews的转换器将Visibility.Collapsed的{​​{1}}属性绑定到OC2,具体取决于给定集合中的项目数量。< / p>

最初有效,但在OC2中添加或删除项目时,可见性不会更新。它仅在使用OC2的设置器时才有效(仅在初始化时)。

此问题与this one不重复,因为我更倾向于仅使用XAML绑定或对Visibility.Visible进行少量修改,尽可能减少代码隐藏。

1 个答案:

答案 0 :(得分:2)

谢谢@ 3615,修复了它!

ViewModel

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