Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择器更改时Xamarin MVVM更新模型_Mvvm_Xamarin.forms_Picker - Fatal编程技术网

选择器更改时Xamarin MVVM更新模型

选择器更改时Xamarin MVVM更新模型,mvvm,xamarin.forms,picker,Mvvm,Xamarin.forms,Picker,以下示例使用MVVM方法基于选择器选择更新属性: 它使用OnPropertyChanged(“SelectedColor”);当选择更改为更新另一个属性时 我有两个问题: 首先,与xaml.cs中的正常OnSelectedIndexChanged事件相比,使用这种方法是否有任何优势 其次,如果我想更新viewmodel中自定义对象的特定项,我将如何使用这种方法。例如,如果在上述示例中所选项目发生更改,是否将该值存储在视图模型中的另一个对象中 对于OnSelectedIndexChanged方法

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

它使用OnPropertyChanged(“SelectedColor”);当选择更改为更新另一个属性时

我有两个问题:

首先,与xaml.cs中的正常OnSelectedIndexChanged事件相比,使用这种方法是否有任何优势

其次,如果我想更新viewmodel中自定义对象的特定项,我将如何使用这种方法。例如,如果在上述示例中所选项目发生更改,是否将该值存储在视图模型中的另一个对象中

对于OnSelectedIndexChanged方法来说,这似乎是一个冗长的过程,但我不知道有哪些优点


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

选择器。SelectedIndexChanged
不像straigthforward那样简单,因为您仍然需要为列表编制索引并查找哪个项目,而且它不是命令,您需要在代码隐藏中实现它

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

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

MVVM也有助于(大量)单元测试您的应用程序


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

感谢您的回复,我已经使用了视图模型方法,并且有一个名为Solutions的对象,该对象有一个名为“UpdateId”的属性。我想知道使用MVVM方法用下拉列表中的值更新属性的最佳方法是什么?这个例子只是更新了一个属性,我会用一个函数替换它吗?@The_tr00per not know man,你必须发布你的代码让我看看并理解你的问题