【发布时间】:2017-08-10 07:13:32
【问题描述】:
我正在使用 WPF 表单,我想知道如何通过 TextBox 与 MVVM 绑定来设置 TextBox.Text 值。
例如:TextBox.Text = "Hello"; 我想将此值设置为文本框和我的文本框,如
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
txtCityName.Text = "Hello Vaibhav";
this.DataContext = new MyTesting();
}
}
我的 WPF 窗口窗体类:
下一个我的 Xaml:
<Grid>
<TextBox Name="txtCityName" Grid.Row="3" Grid.Column="1" Text="{Binding CityName, UpdateSourceTrigger=PropertyChanged}" Height="40" Width="200"/>
</Grid>
接下来是我的模特:
internal class MyTesting : INotifyPropertyChanged
{
private string _CityName;
public MyTesting()
{
}
public string CityName
{
get { return _CityName; }
set { _CityName = value; OnPropertyChanged("CityName"); }
}
#region PropertyChangedEventHandler
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
#region " RaisePropertyChanged Function "
/// <summary>
///
/// </summary>
/// <param name="propertyName"></param>
private void RaisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
#endregion
}
但 NULL 分配给 TextBox 。如何解决这个问题
【问题讨论】:
-
检查 VS 输出窗口是否存在绑定异常。确保设置 DataContext。目前提供的代码不足以重现问题,请创建一个最小的完整示例
-
你设置了datacontext
-
this.DataContext = new AddressModel();
-
是的。我在构造函数中设置 DataContext
-
试试 Text="{Binding CityName}"