我需要访问 DataGridTextColumn 中 DataGrid 单元格的绑定表达式。例如:
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
我设法获得了与单元格关联的 TextBlock:
var cell = dataGrid.GetCellCtrl<TextBlock>(dataGrid.CurrentCell);
细胞似乎是正确的。我可以打电话
cell.SetValue(TextBlock.TextProperty, value);
更新单元格文本。它似乎在网格上工作(数字已更新)。但是,正如我在一段时间后意识到的那样,源代码并没有得到更新。即使我将 UpdateSourceTrigger 转换为 PropertyChange,它也无济于事。然后,我想我需要获取绑定表达式并显式调用 UpdateSource。
var bindingExpr = cell.GetBindingExpression(TextBlock.TextProperty);
但 bindingExpr 始终为空。为什么?
编辑:我最初遇到的问题是我可以获取单元格的绑定 TextBlock,并设置 TextBlock.TextProperty。但是,源没有得到更新。这是我试图解决这个问题的事情。