在[Name] View.xaml.cs文件中应该包含哪些内容?

时间:2016-01-06 17:21:47

标签: c# wpf xaml mvvm

我正在使用WPF创建一个桌面应用程序。 Caliburn MVVM。在我的观看"目录,我有几个遵循这种模式的文件:

ExampleView.xaml< =这是实际的UI设计......

ExampleView.xaml.cs< =这里有什么?

然后我还为每个视图都有一个ViewModel。

有人可以解释在ExampleViewModel.cs中应该包含哪些内容以及ExampleView.xaml.cs中应该包含哪些内容?看起来我的ViewModel继承自" Screen",我的ExampleView.xaml.cs继承自" Window"。

谢谢!

3 个答案:

答案 0 :(得分:1)

这是视图的“Codebehind”。许多人使用代码隐藏来与他们的视图进行交互。但是,许多人更喜欢使用名为MVVM的解耦方法,而不是使用视图模型。 MVVM架构对单元测试更加友好,更易于代码重用。

总而言之,ExampleView.xaml.cs用于与视图上的控件进行交互。

答案 1 :(得分:1)

好吧,您的观点可以从WindowUserControl或其他WPF类继承。在MVVM中,视图是用户界面,视图模型是公开属性和命令的视图的抽象。 MVVM不是MVC模式的控制器,也不是MVP模式的演示者,而是有一个绑定器。在视图模型中,绑定器调解视图和数据绑定器之间的通信。

但是您的视图可以包含不依赖于ViewModel数据的UI逻辑。此逻辑可以作为View(和内部控件)的事件处理程序添加到[Name] View.xaml.cs文件中,例如OnLoadOnResize。它调用Code behind

答案 2 :(得分:0)

我刚刚使用MVVMLight Nuget写了几个WPF应用程序,我的所有[视图] .aspx.cs只有自动生成的代码。我不需要在视图代码中添加任何内容,因为它在我的视图模型中。我还将一些网络应用程序和几个Windows 8商店应用程序转换为MVVM,几乎完全从后面的视图代码中删除了所有代码。

我唯一一次在视图代码中添加了一些内容,可能是在非常孤立的情况下实例化视图模型以与该视图一起使用。

在那里有很多争论是否有零代码来最好地遵循MVVM或在后面的代码中有一些代码是可以的。个人偏好,基于工作量,复杂性,时间表等。

相关问题