【问题标题】:MVVM - WPF How do i bind my View to my Viewmodel?MVVM - WPF 如何将我的视图绑定到我的视图模型?
【发布时间】:2018-05-17 12:50:19
【问题描述】:

我的视图名为“FahrgemeinschaftenView.xaml”和我的视图模型“Fahrgemeinschaften.cs”。 所以默认情况下,视图绑定到它自己的 cs,在这种情况下是“FahrgemeinschaftenView.xaml.cs”。 我对 MVVM 很陌生,但它说 ModelViewlayer 应该包含所有逻辑。所以我尝试将“FahrgemeinschaftenView.xaml”与“FahrgemeinschaftenViewModel.cs”连接起来,但无法弄清楚如何做到这一点(传递数据)。

【问题讨论】:

  • Foo.xamlFoo.xaml.cs 之间的连接不是绑定(在 WPF/MVVM 数据绑定的意义上)。后者只是前者的“代码隐藏”文件(生成的元素,如x:Name 字段和事件处理程序方法所在的位置)。将视图模型传递给视图通常通过将视图模型类的实例分配给视图的DataContext 属性来完成。视图中没有显式设置源对象的所有绑定都将使用 DataContext 对象作为它们的源。
  • 我们需要查看您的代码才能知道如何为您提供帮助。如果没有代码,我们不知道您已经尝试过什么,也不知道您当前方法的问题是什么。请注意,代码应在代码块中编辑到您的问题中。
  • 另请注意,当您在标识符名称中混合语言时,代码通常难以阅读。最好叫它拼车而不是 Fahrgemeinschaft。

标签: c# wpf design-patterns mvvm model-binding


【解决方案1】:

您的视图(在本例中为 FahrgemeinschaftenView)有一个名为 DataContext 的属性。将视图绑定到 ViewModel 的最简单方法是将 FahrgemeinschaftenViewModel 的实例设置为视图的 DataContext 属性。

您可以在 FahrgemeinschaftenView.xaml.cs 的构造函数中执行此操作。 随便写:

DataContext = new FahrgemeinschaftenViewModel();

就在对 InitializeComponent() 的调用下

public FahrgemeinschaftenView()
{
   InitializeComponent();
   DataContext = new FahrgemeinschaftenViewModel();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 2011-08-25
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    相关资源
    最近更新 更多