MvvmCross和ListBox有多个选择

时间:2014-03-26 10:11:17

标签: c# listbox windows-runtime windows-phone mvvmcross

我想创建ListBox。 用户可以选择其中的多个项目(例如删除项目)。

如何使用MvvmCross执行此操作?

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

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

是否有任何其他跨平台解决方案可以解决问题(需要帮助MvvmCross)?

提前致谢!

1 个答案:

答案 0 :(得分:1)

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

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

public class ChooseableApple : MvxNotifyPropertyChanged
{
   public Apple Apple { /* INPC - get,set */ }
   public bool IsSelected { /* INPC - get,set */ }
}

这将允许我在列表项模板中绑定到IsSelected以进行选择状态。以及AppleName

等属性的Colour

这可能不适用于内置的'控件中的SelectedItem类型属性 - 但这些属性在Touch环境中往往不太有意义 - 它们更适合键盘和鼠标环境(IMO)