【发布时间】:2014-08-04 18:41:19
【问题描述】:
在使用 MVVM-light 并开始学习如何使用之前,我在 MainWindow.xaml.cs 中定义了一个字段来保存在同一文件中使用的字符串列表。
// MainWindow.xaml.cs
public static List<string> FieldName = new List<string>();
现在我很困惑使用/编写该字段并在 MainViewModel.cs 中使用它来观察 MVVM 模式的最佳方法是什么?
方式一:在MainWindow.xaml.cs中定义字段,并通过调用MainWindow.FieldName在MainViewModel.cs中使用。
方式二:在MainViewModel.cs中定义字段,简单使用。 如果这没问题,那么定义字段的最佳方式是什么?
谢谢。
【问题讨论】:
-
第二个是正确的选项,你只能绑定属性,不能绑定字段。
-
您不在文件中定义字段/...,而是在类中。
-
你不能绑定到字段,所以所有这些字段讨论都是没有意义的。您通常会在 ViewModel 中的属性中公开数据,然后直接绑定到 UI 中的元素。这就是 MVVM 的工作原理。为什么要在窗口的代码隐藏中创建内容列表尚不清楚。
-
如果你没有将它绑定到用户界面,那么你可以只使用一个字段
-
@Alireza - 根据 MVVM,ViewModel 不应该对 View 有任何了解。因此,如果您想在 VM 中使用此字段,请在您的 VM 中定义它,而不是在 View code behind 中。
标签: c# wpf mvvm mvvm-light