Listview 沙马林;MVVM如何实现?
嗨,我是新来的Listview 沙马林;MVVM如何实现?,listview,mvvm,xamarin.forms,custom-renderer,Listview,Mvvm,Xamarin.forms,Custom Renderer,嗨,我是新来的Xamarin,有人建议我使用纯MVVM,因为我的代码是MVVM和什么都没有的混合体 我看了这些例子: 但我仍然无法在代码中正确定义什么是模型,什么是视图,什么是模型视图 你能告诉我在MVVM之后我的项目的正确结构吗?让我试着用参考示例Employee来解释纯MVVM结构 PCL: =>模型:将包含所有模型类别。例如employee.cs =>视图:将包含所有xaml页面。例如employeeList.xaml等 =>ViewModel:将包含所有ViewModel。例如emp
Xamarin
,有人建议我使用纯MVVM
,因为我的代码是MVVM
和什么都没有的混合体
我看了这些例子:
但我仍然无法在代码中正确定义什么是模型
,什么是视图
,什么是模型视图
你能告诉我在
MVVM
之后我的项目的正确结构吗?让我试着用参考示例Employee来解释纯MVVM结构
PCL:
=>模型:将包含所有模型类别。例如employee.cs
=>视图:将包含所有xaml页面。例如employeeList.xaml等
=>ViewModel:将包含所有ViewModel。例如employeeViewmodel.cs,您可以在其中定义可绑定属性、命令和所有其他操作方法,如添加、更新等。现在使用bindingContext将此viewmodel绑定到视图
=>DependencyService:定义要在不同平台上实现的接口
安卓:
=>DependencyService:根据您的需求实现特定于平台的接口
=>CustomRenderer:根据平台,根据特定需求在此处创建自定义渲染
编辑:
请参见您希望在视图(UI)上显示不断变化的员工总数的示例
因此,您可以在实现INotifyPropertyChanged的viewmodel中创建可绑定属性EmpCount。现在你可以用任何方法设置它
现在,您已经将此视图模型设置为页面的绑定上下文。它的值会自动反映在UI上。看起来您缺少了视图模型。您有一个视图(保存ListView的视图)和一个模型(StoreModel),但缺少一个“连接”它们的ViewModel。只需创建一个ViewModel并让您的控件。(ListView)将其属性和事件绑定到该模型和done@Tobias如果我没有必须自己处理绑定的CustomRenders,并且Android有自己的CellView,这将非常简单。我不明白为什么这会阻止你将视图属性绑定到viewModel上。你能更详细地解释一下这一部分吗?有很多关于MVVM和用Xamarin表单实现MVVM的文章,从了解MVVM本身开始。看看这个@Tobias Theel我试着多解释一点。。。够了吗?关于
ContentPage.BindingContext
和{Binding Property}
和BindableProperty
我真的不明白它们是如何使用的…@Tiago\nes请检查我的编辑。如果您对可观察到的收集
还有任何疑问,请告诉我?当我使用collection rigth时,我不需要实现InTifyPropertyChanged
?它实际上应该是。但有时它不会反映。因此我建议您实现InTifyPropertyChanged并为其创建可绑定属性。为了更好地实践。