【发布时间】:2019-01-18 23:02:49
【问题描述】:
据我所知,使用绑定到列表视图的 ObservableCollection 的默认方式是将模型类作为元素 (ObservableCollection<MyModel>)。所以当一个列表视图元素被选中时,我们使用 NavigateAsync 并传递模型,然后 ViewModel 可以使用它来“填充自身”。
这种方法的问题在于,无法在列表视图中使用 ViewModel 属性进行绑定。
例如: 我有一个视图、ViewModel 和模型“PickList”,其中包含一组“PickLine”对象——每个对象本身都有一个视图、ViewModel 和模型。 PickLine 对象包含一个属性“PickedQuantity”和一个属性“OpenQuantity”。现在在我的 PickList 视图中,我不想将这两个绑定到单独的项目(例如两个标签),但我希望有一个标签来显示两种格式,例如“PickedQuantity / OpenQuantity”。我知道这个例子可以通过使用多重绑定或类似的东西来解决。但这还不是全部的意义。 我的 PickLine ViewModel 已经有一个属性“QuantityString”,我想通过 DataTemplate 绑定到列表视图元素的标签。但是我该怎么做。有可能吗?
【问题讨论】:
-
你的第一句话不是指
... with view model classes.吗?直接绑定到模型很少是一个好主意。 -
@Haukinger 这意味着模型类元素。所以 ObservableCollection
。我正在编辑它以进行澄清。
标签: c# xamarin mvvm xamarin.forms prism