我正在尝试数据绑定一些文本框以显示我所创建的类的各个字段:
我尝试了以下代码。
MyClass ClassObj = new MyClass();
DataContext = ClassObj;
// Create a new binding
// Val1 is a variable of type String in MyClass class
Binding myNewBindDef = new Binding("Val1");
myNewBindDef.Mode = BindingMode.TwoWay;
myNewBindDef.Source = ClassObj;
// txtBox1is a TextBlock object that is the binding target object
BindingOperations.SetBinding(txtBox1, TextBox.TextProperty, myNewBindDef);
我添加了一个使用 对于System.Windows.Data和System.ComponentModel,MyClass实现INotifyPropertyChanged。但是,当我运行应用程序并更新ClassObj.Val1的值不会影响任何内容时,文本框为空。
我缺少哪些步骤,或者有更好的方法可以做到这一点?
由于
答案 0 :(得分:1)
INotifyPropertyChanged的替代方法是使MyClass继承自DependencyObject,并使用DependencyProperty.Register()函数为Val1创建DependencyProperty。 DependencyProperty应存储在MyClass的公共级静态成员中。然后在Val1属性的getter和setter中使用GetValue()和SetValue()来访问DependencyProperty。
答案 1 :(得分:0)
啊,事实证明我必须首先让Val1成为一个公共变量