WPF DataContext问题与datacontext对象

时间:2018-07-04 13:01:10

标签: wpf

我创建了一个带有datacontext的简单示例。请从此处获取示例:source我了解DataContext的用途是

  1. 如果用户更改了UI中的任何内容,则应在后端数据上下文类中对其进行更新,而无需进行任何其他工作。
  2. 如果我们对后端数据上下文对象进行任何更改,则应在UI中对其进行更新,而无需进行任何其他工作。

在我的示例中,

  1. 如果我单击“单击”按钮,则文本框值将更新。 -通过

  2. 如果我单击“更新”按钮,则文本框值将被更新。 -通过

  3. 如果我单击“清除”按钮,则文本框值未更新。 -失败

  4. 单击“清除”按钮后,如果单击“单击”或“更新”按钮,则文本框值未更新。 -失败

我做错什么了吗?如果是,如何在构造函数的文本框中初始化一些值,然后如果用户进行更改,则需要更新datacontext对象的值。如果我在后面的代码中更新了任何值,则需要在UI中更新这些值。另外,如果我单击“清除”按钮,则所有文本框值都需要清除。之后,如果用户再次输入值,则需要更新对象。我该如何实现?请帮忙。

注意:在我的示例中,我注释了一些行。这样,我每次都将数据上下文转换为模型类并进行更改。它的工作正常。我是否需要使用该方法来更新值运行时间。更改对象中的值将不会在UI中更新?

1 个答案:

答案 0 :(得分:2)

问题是您考虑了链接到DataContext的变量“ dc”,但事实并非如此。要修复您的代码,只需在更改“ dc”变量后再次设置DataContext。

 private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        dc = new Journal();
        myPanel.DataContext = dc;
        //myPanel.DataContext = new Journal();
    }