首先创先一个实体类
public class MyClass : INotifyPropertyChanged
{
private static string _myString = "sdfdsfssdfsdfsdfdsf";
public string MyString
{
get { return _myString; }
set
{
_myString = value;
OnPropertyChanged("MyString");
}
}
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
}
//然后把这个实体类绑定到页面的 DataContext
追问:
我从后台绑定的,但是它说我没有实现INOtifyPropertyChanged接口
追答:
2中方式
第一种
第二种
追问:
使用第一种方法的时候它说URI指向的是未包含在程序集中的命名空间...
所以我在后台绑定的,具体代码如下:
但是程序爆出如下异常,请问该怎么办?把绑定的方法从oneway改为onetime
就可以运行,请问是什么原因:
追答:
不是这么写的吧
简单的写法
this.DataContext = new MyClass();
MytTextBox.SetBinding(TextBox.TextProperty, new Binding("MyString"){Mode = BindingMode.OneWay});
你的那种写法就不需要绑定DataContext了
直接
Binding bd = new Binding() { Source = new MyClass(), Path = new PropertyPath("MyString"),Mode = BindingMode.OneWay };
BindingOperations.SetBinding(MytTextBox, TextBox.TextProperty, bd);
追问:
你好,按照你的方式试过了,还是抛出XamlParseException错误,然后我将OneWay的调用方法改为onetime就不会出错,应该还是INotiyPropertyChanged接口没有正确实现,请问我该怎么办?
首先创先一个实体类
public class MyClass : INotifyPropertyChanged
{
private static string _myString = "sdfdsfssdfsdfsdfdsf";
public string MyString
{
get { return _myString; }
set
{
_myString = value;
OnPropertyChanged("MyString");
}
}
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
}
//然后把这个实体类绑定到页面的 DataContext