【问题标题】:Xamarin & MVVM How to? [closed]Xamarin 和 MVVM 如何? [关闭]
【发布时间】:2018-06-02 22:09:28
【问题描述】:

嗨,我是 Xamarin 的新手,有人建议我使用纯 MVVM,因为我的代码有点混合 MVVM 和什么都没有。

我看了这个例子:

  1. Example1
  2. Example2

但我仍然无法在我的代码中正确定义什么是Model、什么是View 以及什么是ModelView

您能否指出我在MVVM 之后的项目的正确结构?

【问题讨论】:

  • 看起来您缺少 ViewModel。您有一个视图(该视图包含您的 ListView)和一个模型(StoreModel),但您只是缺少一个“连接”它们的 ViewModel。只需创建一个 ViewModel 并让您的控件。 (ListView) 将它的属性和事件绑定到该模型上并完成
  • @Tobias Theel 如果我没有必须自己处理绑定的 CustomRenderers 并且如果 Android 有自己的 CellView,那将非常简单。
  • 我不明白为什么这会阻止您将视图属性绑定到视图模型。你能把那部分解释得更详细一点吗?
  • 关于 MVVM 和使用 Xamarin Forms 实现 MVVM 的文章很多,从了解 MVVM 本身开始。看看这个developer.xamarin.com/guides/xamarin-forms/…
  • @Tobias Theel 我试着解释一下……够了吗?

标签: listview mvvm xamarin.forms custom-renderer


【解决方案1】:

让我试着用Employee的参考例子来解释纯MVVM结构

PCL:

=>Model : 这将包含你所有的模型类。例如employee.cs

=>查看:将包含所有 xaml 页面。例如employeeList.xaml 等

=>ViewModel :它将包含所有视图模型。例如employeeViewmodel.cs,您可以在其中定义可绑定属性、命令和所有其他操作方法,如添加、更新等。现在使用bindingContext将此视图模型绑定到视图。

=>DependencyService : 定义你想在不同平台上实现的接口

安卓:

=>DependencyService : 根据您的要求实现平台特定的接口。

=> CustomRenderer : 在这里为特定需求创建自定义渲染。根据平台。

编辑:

例如,请参阅您希望在不断变化的视图 (UI) 上显示员工总数。

因此您可以在实现 INotifyPropertyChanged 的​​视图模型中创建可绑定属性 EmpCount。现在你可以用任何方法设置它了。

现在您已经将此视图模型设置为页面的绑定上下文。它的值会自动反映在 UI 上。

【讨论】:

  • ContentPage.BindingContext{Binding Property}BindableProperty 怎么样,我真的不明白它们是如何使用的......
  • @Tiago_nes 请检查我的编辑。如果您还有任何困惑,请告诉我
  • ObservableCollection 也一样?使用采集权限时不需要实现INptifyPropertychanged
  • 实际上应该是。但有时它不反映。所以我建议你实现 INotifyPropertyChanged 并为其创建可绑定属性。为了更好的实践。
猜你喜欢
  • 2018-05-22
  • 2010-11-30
  • 2018-01-04
  • 1970-01-01
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
  • 2016-08-21
相关资源
最近更新 更多