你能在类对象上使用数据绑定吗?

时间:2010-12-11 13:05:22

标签: data-binding windows-phone-7

我正在尝试数据绑定一些文本框以显示我所创建的类的各个字段:

我尝试了以下代码。

    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的值不会影响任何内容时,文本框为空。

我缺少哪些步骤,或者有更好的方法可以做到这一点?

由于

2 个答案:

答案 0 :(得分:1)

INotifyPropertyChanged的替代方法是使MyClass继承自DependencyObject,并使用DependencyProperty.Register()函数为Val1创建DependencyProperty。 DependencyProperty应存储在MyClass的公共级静态成员中。然后在Val1属性的getter和setter中使用GetValue()和SetValue()来访问DependencyProperty。

答案 1 :(得分:0)

啊,事实证明我必须首先让Val1成为一个公共变量