- C#, C♯, C#相談室 Part83
411 :デフォルトの名無しさん[sage]:2014/05/21(水) 19:25:24.07 ID:bWXCPWXI - WPFのDataGridで、どの列が画面内に表示されているかを知る方法をご存知の方いらっしゃいませんか。
広いDataGridの各セルに値を表示していて、一定間隔で表示を更新しているのだけど、 表示更新を行うのを画面内に表示されている範囲だけにしたくて、現在表示されている列を知りたいのです。 どの行が表示されるかは、DataGrid.LoadingRow/UnloadingRowイベントで簡単にわかるんだけど、 列に関してはこれに類似する便利なイベントなどが見つからなくて、悩んでいます。 ScrollChangedイベントが発生した時に各列の位置を計算して、 表示されている範囲内に収まっているかを確認するという方法を考えたんだけど、 「表示されている範囲」を取得する方法がわからず、実現できるかどうか・・・ 詳しい方、知恵を貸していただけませんでしょうか。
| - C#, C♯, C#相談室 Part83
414 :デフォルトの名無しさん[sage]:2014/05/21(水) 22:08:50.68 ID:bWXCPWXI - >>412
VisualTreeHelperですか・・・ 使ったことないので、調べてみます。 >>413 ありがとうございます。 表示更新以外にも内部的にやりたいことがあって、表示されている列をなんとかして取得したいと考えています。 やっぱりWPFのDataGridは使えないのですね・・・DataGridViewの便利さが身にしみます。 今回すでにDataGridが用意されている中での改造をやろうとしていて、WindowsFormsHostを使うことができないので、 WPFの範囲でなんとかできる方法をもう少し試行錯誤したいと思います。
|
|