私はUserControl(InitializeComponentの後)のコンストラクタ関数でバインドするDataGridを持っています。WPF UserControlのために読み込まれた後にどのようなイベントが発生しますか?
DataGridRow row = (DataGridRow)myDataGrid.ItemContainerGenerator.ContainerFromIndex(rowIdx);
私はItemContainerGenerator.ContainerFromIndexはnullを返し、それを行うたびしかし:ユーザーコントロールのためにロードされた場合には、私が実行ので、私は、それにいくつかの行にアクセスする必要があります。データグリッドがまだ完全に生成されていないように見えるので、その理論をテスト/確認するために、私は画面上にボタンを投げて、ボタンのクリックイベントで再びそのコードを実行し、価値。したがって、UserControlのロードされたイベントが発生すると、それが早すぎることが確認され、DataGridのItemContainerGenerator.ContainerFromIndexをまだ呼び出すことができません。
私は代わりにどのようなイベントを起動した後に起動するのですか?
注:
DataGridRow row = (DataGridRow)myDataGrid.ItemContainerGenerator.ContainerFromIndex(rowIdx);
if (row == null)
{
myDataGrid.UpdateLayout();
myDataGrid.ScrollIntoView(myDataGrid.Items[rowIdx]);
row = (DataGridRow)myDataGrid.ItemContainerGenerator.ContainerFromIndex(rowIdx);
}
そして、私はまた、DataGridのロードされたイベントが、同じ結果でそれをやってみました:。私も私が見つけたが、同じ結果を得た。このコードを試してみました
ありがとうございます!
あなたがロードより DispatcherPriority下でそのコードを実行することができます