关于 c#:MvvmCross 和 ListBox 多选

MvvmCross and ListBox with multiple selection

我想创建列表框。
用户可以在其中选择多个项目(例如删除项目)。

如何用 MvvmCross 做/实现这个?

我正在计划为 windows phone 和 WinRT 平台创建一个应用程序,我想使用 MvvmCross。

对于 windows phone,我找到了支持此功能的 LongListMultiSelector Control (Windows Phone Toolkit)。但这会导致 .xaml 页面中出现更多代码。它也使跨平台应用程序更加复杂。

是否有任何其他跨平台解决方案(可通过 MvvmCross 帮助)?

提前致谢!


通常我通过将选择状态放在每个列表项的视图模型中来处理多重选择。

例如,假设我有一个想要多选的 Apple 列表。为了支持这一点,在我的 ViewModel 中,我将公开一个 ChooseableApple 列表 - 定义如下:

1
2
3
4
5
public class ChooseableApple : MvxNotifyPropertyChanged
{
   public Apple Apple { /* INPC - get,set */ }
   public bool IsSelected { /* INPC - get,set */ }
}

这将允许我在列表项模板中绑定到 IsSelected 以获取选择状态。和 Apple 获取 NameColour 等属性

这可能无法与控件中的 \\'built-in\\' SelectedItem 类型属性完美配合 - 但这些属性在触控环境中往往意义不大 - 它们更适合键盘和鼠标环境 (IMO)