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

假设OC1绑定(bind)到LV1,而OC2绑定(bind)到LV2。

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

我想做以下事情:

OC2为空时的

  • :显示LV1并隐藏LV2
  • OC2不为空时的
  • :隐藏
    LV1并显示LV2

  • 我尝试使用一个转换器将两个VisibilityListViews属性绑定(bind)到OC2,该转换器根据给定集合中的项数返回Visibility.CollapsedVisibility.Visible

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

    这个问题不是this one的重复,因为我希望只使用XAML绑定(bind)或对ViewModel进行小的修改,并尽可能减少代码隐藏。

    最佳答案

    感谢@ 3615,它已解决问题!

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

    关于c# - 使用ObservableCollection更新对CollectionChanged的XAML绑定(bind),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35548381/

    10-10 21:47