我正在使用DataGrid顯示一些日誌文件,其中每個單元格都包含一個TextBlock。我需要幫助創建一個方法來擴展用戶選擇的行這樣的:在WPF數據網格中展開行
這是我的代碼現在。它是基於點擊的行的索引:
DataGridRow testrow = (DataGridRow)logBrowserDataGrid.ItemContainerGenerator.ContainerFromIndex(index);
logBrowserDataGrid.UpdateLayout();
logBrowserDataGrid.ScrollIntoView(logBrowserDataGrid.Items[index]);
testrow = (DataGridRow)logBrowserDataGrid.ItemContainerGenerator.ContainerFromIndex(index);
testrow.Height = 100;
但是這創造了一個怪異的結果:
你知道神的方式來擴大基於索引的行?
你知道我得到的奇怪結果會發生什麼嗎?它看起來像我正在擴大行的一部分,其餘的伸展。我也在運行時研究了它,可以看到它的高度是正確的100,但實際高度仍然是20.
附加信息: 行的默認大小由DataGrid上的.RowHeight屬性設置。 我正在使用AutoGenerateColumns功能,並且捕獲AutogeneratingColumn事件以用DataGridTemplateColumn替換列。
我喜歡用僞裝成一個TextBlock擴展器控制的想法,但是我不知道該怎麼做,不破壞擴展的功能 - 我不想文本多次有(如首標和擴展區域中的第一行)。 –
@ChristianOlling當擴展器展開時,您始終可以將標題的可見性設置爲摺疊狀態,而WPF將只加載一個TextBlock或另一個TextBlock。您可以在這裏找到WPF控件的默認模板:http://msdn.microsoft.com/en-us/library/aa970773.aspx。我也只是想,也許你可以添加一個'Click'事件到'TextBlock',它將'TextWrapping'設置爲'Wrap'或'NoWrap' – Rachel