New*_*per 4 .net c# data-binding wpf
我有一个grid,它DataContext是从代码后面分配的:
CustomerDataGrid.DataContext = _customerobj;
Run Code Online (Sandbox Code Playgroud)
当某些函数正在执行时,_customerobj对象会发生变化:
_customerobj = obj;
Run Code Online (Sandbox Code Playgroud)
但是DataContext根据新的对象细节不会更新.如果我使用以下内容它会更新:
_customerobj = obj;
CustomerDataGrid.DataContext = _customerobj;
Run Code Online (Sandbox Code Playgroud)
每次_customerobj更新或错过了什么时,我是否需要遵循相同的规定?
您所经历的不是因为没有实施而导致的INotifyPropertyChanged.
当你这样做时CustomerDataGrid.DataContext = _customerobj;,你将设置DataContext为某个值.之后你正在设置_customerobj = obj;,你只是给出一个_customerobj新值,但DataContext仍然引用原始对象,所以它不会改变.
例如:
string a = "hello";
string b = a; // b points to "hello"
a = "world"; // a points to "world"
// but b's pointer doesn't change
Console.WriteLine(b); // Outputs "hello"
Run Code Online (Sandbox Code Playgroud)
这意味着您还必须设置DataContext.
注意:这实际上并不是字符串的工作方式,因为.NET字符串是不可变的,但希望这可以解决问题.
| 归档时间: |
|
| 查看次数: |
3144 次 |
| 最近记录: |