我有一個DataGrid,我將其綁定在UserControl的構造函數中(在InitializeComponent之後)。我需要訪問它的一些行,因此在用戶控件加載的情況下,我跑:加載WPF UserControl後會發生什麼事件?
DataGridRow row = (DataGridRow)myDataGrid.ItemContainerGenerator.ContainerFromIndex(rowIdx);
但是每當我這樣做,ItemContainerGenerator.ContainerFromIndex返回null。看起來像DataGrid尚未完全生成,所以爲了測試/確認理論,我在屏幕上扔了一個按鈕,並在按鈕的單擊事件中,我再次運行該代碼,然後果然,該行已經一個值。所以,經過確認,當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的加載事件,但同樣的結果做。
謝謝!