选择器更改时 Xamarin MVVM 更新模型
Xamarin MVVM Update model when picker changes
以下示例使用 MVVM 方法根据选择器选择更新 属性:
它使用 OnPropertyChanged("SelectedColor"); when the selection changes to update another 属性.
我有两个问题:
首先,与 xaml.cs 中的普通 OnSelectedIndexChanged 事件相比,使用这种方法有什么优势吗?
其次,如果我想在我的视图模型中为我的自定义对象更新特定项目,我将如何使用这种方法。例如,如果在上面的示例中选择的项目发生了变化,那么将值存储在视图模型中的另一个对象中?
OnSelectedIndexChanged 方法似乎很啰嗦,但猜想有我不知道的优点?
基本上我在页面上有许多下拉菜单,每次更改时,我都想更新我的视图模型中的对象,该对象将通过休息服务发送回服务器。
Picker.SelectedIndexChanged
不是那么直截了当,因为您仍然需要索引列表并找到哪个项目,并且由于它不是命令,您需要在代码隐藏中实现它。
您刚才说您需要发送 rest http 请求,这意味着您的应用程序相当复杂,因此您可能需要 ViewModels
并且为了保持代码的连贯性,您应该将相同的模式应用到所有页面。
为了保持整洁,我总是实现 MVVM,即使 Page
逻辑不是很广泛。
MVVM 还有助于(很多)对您的应用程序进行单元测试。
但归根结底,还是要看口味。
以下示例使用 MVVM 方法根据选择器选择更新 属性:
它使用 OnPropertyChanged("SelectedColor"); when the selection changes to update another 属性.
我有两个问题:
首先,与 xaml.cs 中的普通 OnSelectedIndexChanged 事件相比,使用这种方法有什么优势吗?
其次,如果我想在我的视图模型中为我的自定义对象更新特定项目,我将如何使用这种方法。例如,如果在上面的示例中选择的项目发生了变化,那么将值存储在视图模型中的另一个对象中?
OnSelectedIndexChanged 方法似乎很啰嗦,但猜想有我不知道的优点?
基本上我在页面上有许多下拉菜单,每次更改时,我都想更新我的视图模型中的对象,该对象将通过休息服务发送回服务器。
Picker.SelectedIndexChanged
不是那么直截了当,因为您仍然需要索引列表并找到哪个项目,并且由于它不是命令,您需要在代码隐藏中实现它。
您刚才说您需要发送 rest http 请求,这意味着您的应用程序相当复杂,因此您可能需要 ViewModels
并且为了保持代码的连贯性,您应该将相同的模式应用到所有页面。
为了保持整洁,我总是实现 MVVM,即使 Page
逻辑不是很广泛。
MVVM 还有助于(很多)对您的应用程序进行单元测试。
但归根结底,还是要看口味。