简单地将数据从代码绑定到XAML

我是WPF概念的新手。 我想在文本框中显示一个字符串。 我尝试了以下C#代码和XAML将字符串绑定到TextBox.Text属性。 C#代码:

public partial class Window1 : Window { public int TmpVal; public string TmpStr; public Window1() { TmpVal = 50; TmpStr = "Windows Created"; InitializeComponent(); this.DataContext = this; } private void viewButton_Click(object sender, RoutedEventArgs args) { TmpStr = "Button clicked"; } } 

}

XAML:

        

在执行时,我总是在文本框中得到空白文本(即使我调用click事件)。
我浏览了stackoverflow网站,但无法解决问题(虽然很多问题都接近这个问题)
如果有什么被忽视或遗漏,有人可以建议我吗?

数据绑定不适用于字段。 改为使用属性:

 public int TmpVal {get; set;} public string TmpStr {get; set;} 

此外,如果您希望文本框自动从数据中获取更改,您理想情况下需要实现INotifyPropertyChanged或使其成为依赖项属性, 或者为每个XXX属性设置XXXChanged事件这不再起作用 )。

       

而背后的代码:

 public partial class Window1 : Window, INotifyPropertyChanged { public Window1() { this.TmpStr = "Windows Created"; this.InitializeComponent(); this.DataContext = this; } public event PropertyChangedEventHandler PropertyChanged; public string TmpStr { get; set; } public int TmpVal { get; set; } private void viewButton_Click(object sender, RoutedEventArgs args) { this.TmpStr = "Button clicked"; if (this.PropertyChanged != null) { this.PropertyChanged(this, new PropertyChangedEventArgs("TmpStr")); } } }