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 は常に null です。なんで?
編集:私が抱えていた元の問題は、セルのバインド TextBlock にアクセスし、TextBlock.TextProperty を設定できることでした。ただし、ソースは更新されません。これは、私がこの問題を解決しようとしているものです。