WPF ViewModel和View

时间:2014-03-04 17:17:08

标签: wpf vb.net mvvm binding

我已经在WPF编程了一段时间,现在来自Windows Forms。因此,我一直将View和ViewModel直接链接在一起,方法是在View中为控件提供一个名称,并在ViewModel中使用该名称来更新我的View。

现在我做了一些搜索,发现有一种叫做MVVM的东西。我已经研究了一个星期,并试图让我的应用程序“更好”。

首先,我开始使用与Dependency Properties的绑定,如下所示:

Public Shared SelKlantProperty As DependencyProperty = DependencyProperty.Register("SelKlant", GetType(String), GetType(MainWindow))
Public Property SelKlant As String
    Get
        Return DirectCast(GetValue(SelKlantProperty), String)
    End Get
    Set(value As String)
        SetValue(SelKlantProperty, value)
    End Set
End Property

我现在有大约50个这样的属性,我的代码变得非常快。另外,我的ClassDiagram填充了Public Shared DependencyProperty的字段和Public Property的属性。

我想知道,是否有更简单或更好的方法来绑定View和ViewModel?我使用的大部分Properties都是将Text放入TextBoxes

1 个答案:

答案 0 :(得分:2)

您不需要为视图模型属性创建依赖项属性 - 常规属性就足够了。但是,如果您要将绑定到该属性,则必须使用依赖项属性(例如,TextBox.Text是依赖项属性 - 如果您将无法绑定到它,则无法绑定它它不是)。您可以按原样保留属性 - 只需确保实施INotifyPropertyChanged

依赖属性除了用于数据绑定之外还有其他用途,但我不会详细说明,因为它是一个非常大的主题,您可以在其他资源中找到。除此之外,您可以阅读有关如何实现MVVM模式here的更多信息。此页面还包含一些示例,您可以在其中看到viewmodel不需要定义任何依赖项属性。