0
我有一個Datagrid,它使用DataTable中的值填充。在我的程序中,我有四個按鈕:轉到第一個,最後一個,下一個和上一個,因爲名稱表示我必須根據使用這些按鈕所做的選擇來選擇行。一切似乎都很好,如果我使用下面的代碼來獲取行(例如第一行)。按鈕上的Datagrid行選擇單擊WPF
DataGridRow row =(DataGridRow)userControl.m_DataGrid.ItemContainerGenerator.ContainerFromIndex(0);
row.IsSelected = true;
但是,當存在比Datagrid的高度更多的行時(滾動條進入圖片時),代碼會拋出空值。
請幫我解決這個問題。我認爲這是因爲觀點問題。
我試過第一種方法(ScrollIntoView),所以我可以移動到第一個和最後一個位置,但行的選擇仍然不可能,因爲它給出了空值。只有第一排其行爲良好。 ** CustomerGrid.ScrollIntoView(CustomerGrid.Items [0]); DataGridRow row =(DataGridRow)CustomerGrid.ItemContainerGenerator.ContainerFromIndex(0); row.IsSelect = true; row.Focus(); ** – Kris 2012-01-29 19:12:49
@Kris:我說你需要**等待容器被創建**,你不能在同一個方法中做到這一點,網格甚至不會在那一點滾動這是由UI線程在空閒時完成的。我不會試圖做到這一點,這是一個皇家的痛苦。 – 2012-01-29 19:17:10