c# - 使用 ObservableCollection 更新 CollectionChanged 上的 XAML 绑定(bind)

标签 c# xaml mvvm

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

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

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

我想做以下事情:

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

  • 我尝试绑定(bind)Visibility两者的属性ListViews使用返回 Visibility.Collapsed 的转换器到 OC2或 Visibility.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/

    相关文章:

    c# - 角度theta计算错误

    c# - 长列表选择器跳转列表屏幕windows phone

    c# - XAML 框架从未针对表单行为调用 OnDetachingForm

    c# - 使用类类型列表(或类似概念)来限制有效输入

    c# - PL/SQL 是否具有 C# 中数组参数的等价物?

    c# - 与 ViewModel 共享 EntityFramework 上下文

    c# - 我们可以在 mvvm 中应用存储过程吗?有道理的解释

    WPF 数据绑定(bind)智能感知

    c# - 结合字符串插值和 string.format

    WPF DataBinding 到代码隐藏中的标准 CLR 属性