DataGrid를 사용하여 각 셀에 TextBlock이 포함 된 일부 로그 파일을 표시하고 있습니다.WPF DataGrid의 행 확장
이 지금 내 코드입니다 :이 같은 사용자가 선택한 행을 확장하는 방법을 만들어 도움이 필요합니다.
DataGridRow testrow = (DataGridRow)logBrowserDataGrid.ItemContainerGenerator.ContainerFromIndex(index);
logBrowserDataGrid.UpdateLayout();
logBrowserDataGrid.ScrollIntoView(logBrowserDataGrid.Items[index]);
testrow = (DataGridRow)logBrowserDataGrid.ItemContainerGenerator.ContainerFromIndex(index);
testrow.Height = 100;
그러나이 이상한 결과를 생성합니다 : 그것은 클릭 한 행의 인덱스를 기반으로
인덱스에 따라 행을 확장 할 수있는 신 방법을 알고 있습니까?
나는 이상한 결과가 어떻게되는지 알고 있니? 나는 줄의 일부를 확대하고있는 것처럼 보이고, 나머지는 늘어납니다. 나는 또한 런타임에 그것을 공부하고 그 높이가 올바른지 100 볼 수 있지만 ActuallyHeight 여전히 20입니다.
추가 정보 : DataGrid의 .RowHeight 속성에 의해 행의 기본 크기가 설정됩니다. . AutoGenerateColumns 기능을 사용하고 있고 AutogeneratingColumn 이벤트를 잡아서 열을 DataGridTemplateColumn으로 바꿉니다.
내가 그러나 나는 확장기의 기능을 파괴하지 않고, 그것을하는 방법을 모른다, TextBlock의로 위장 확장기 컨트롤을 사용하는 아이디어를 좋아한다 - 나는 텍스트를 여러 번하고 싶지 않아 (예 : 머리글과 확장 영역의 첫 번째 줄). –
@ChristianOlling 확장기를 확장하면 머리글의 표시 여부를 축소로 설정할 수 있으며 WPF는 하나의 TextBlock 또는 다른 하나만로드합니다. WPF 컨트롤의 기본 템플릿은 http://msdn.microsoft.com/en-us/library/aa970773.aspx에서 찾을 수 있습니다. 나는 또한 단지 TextBrapping에'Click' 이벤트를 추가하여 TextBrapping을'Wrap' 또는'NoWrap'으로 설정한다고 생각했습니다. – Rachel