【问题标题】:Xamarin MVVM Update model when picker changes选择器更改时 Xamarin MVVM 更新模型
【发布时间】:2018-10-29 00:33:17
【问题描述】:

以下示例使用 MVVM 方法根据选择器选择更新属性:

https://github.com/xamarin/xamarin-forms-samples/blob/master/UserInterface/BindablePicker/BindablePicker/BindablePicker/SimpleColorPickerPageViewModel.cs

它使用 OnPropertyChanged("SelectedColor"); when the selection changes to update another property.

我有两个问题:

首先,与 xaml.cs 中的普通 OnSelectedIndexChanged 事件相比,使用这种方法有什么优势吗?

其次,如果我想为我的视图模型中的自定义对象更新特定项目,我将如何使用这种方法。例如,如果在上面的示例中选择的项目发生了变化,将值存储在视图模型中的另一个对象中?

OnSelectedIndexChanged 方法似乎有些啰嗦,但我猜有一些我不知道的优点?

基本上我在一个页面上有许多下拉菜单,每次更改时,我都想更新我的视图模型中的对象,该对象将通过休息服务发送回服务器。

【问题讨论】:

    标签: mvvm xamarin.forms picker


    【解决方案1】:

    Picker.SelectedIndexChanged 没有那么简单,因为您仍然需要索引列表并查找哪个项目,并且由于它不是命令,因此您需要在 Code Behind 中实现它。

    你刚才说你需要发送rest http请求,所以这意味着你的应用程序相当复杂,所以你可能需要ViewModels,为了保持你的代码连贯性,你应该对所有页面应用相同的模式。

    为了保持整洁,即使Page 逻辑不是很广泛,我也总是实现 MVVM。

    MVVM 还有助于(很多)对您的应用程序进行单元测试。

    但归根结底,一切都与品味有关。

    【讨论】:

    • 感谢您的回复,我已经使用视图模型方法并且有一个名为 Solutions 的对象,该对象有一个名为“UpdateId”的属性。我想知道使用 MVVM 方法使用下拉列表中的值更新属性的最佳方法?这个例子只是更新了一个属性,我会用一个函数替换它吗?
    • @the_tr00per 不认识,您必须发布您的代码让我查看并了解您的问题
    猜你喜欢
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多