Opcje ustalania rozmiaru w formancie DataGrid

Dostępne są różne opcje do kontrolowania sposobu, w DataGrid jaki rozmiary się znajdują. Poszczególne DataGridwiersze i kolumny w tabeli DataGridmożna ustawić na automatyczne ustawianie rozmiaru zawartości lub można ustawić na określone wartości. Domyślnie DataGrid rozmiar zawartości będzie się zwiększać i zmniejszać.

Ustalanie rozmiaru usługi DataGrid

Uwaga podczas korzystania z automatycznego określania rozmiaru

Domyślnie Height właściwości DataGrid i Width są ustawione na Double.NaN ("Auto" w języku XAML), a DataGrid właściwość zostanie dopasowana do rozmiaru jego zawartości.

Po umieszczeniu wewnątrz kontenera, który nie ogranicza rozmiaru jego elementów podrzędnych, takich jak lub CanvasStackPanel, DataGrid będzie rozciągać się poza widoczne granice kontenera i paski przewijania nie będą wyświetlane. Ten warunek ma wpływ zarówno na użyteczność, jak i wydajność.

Jeśli element jest powiązany z zestawem danych, jeśli Height element nie DataGrid jest ograniczony, będzie nadal dodawać wiersz dla każdego elementu danych w powiązanym zestawie danych. Może to spowodować DataGrid zwiększenie wartości poza widocznymi granicami aplikacji w miarę dodawania wierszy. W tym przypadku paski przewijania DataGrid nie będą wyświetlane, ponieważ Height będzie nadal rosnąć, aby pomieścić nowe wiersze.

Obiekt jest tworzony dla każdego wiersza w obiekcie DataGrid. Jeśli pracujesz z dużym zestawem danych i zezwalasz DataGrid na automatyczne ustawianie rozmiaru, utworzenie dużej liczby obiektów może mieć wpływ na wydajność aplikacji.

Aby uniknąć tych problemów podczas pracy z dużymi zestawami danych, zaleca się ustawienie HeightDataGrid obiektu lub umieszczenie go w kontenerze, który ograniczy jego Heightwartość , na przykład Grid. Gdy parametr Height jest ograniczony, DataGrid spowoduje to utworzenie tylko wierszy, które będą mieścić się w określonym Heightelemecie , i będzie odtwarzać te wiersze zgodnie z potrzebami w celu wyświetlenia nowych danych.

Ustawianie rozmiaru usługi DataGrid

DataGrid Można ustawić opcję automatycznego rozmiaru w określonych granicach lub DataGrid można ustawić na określony rozmiar. W poniższej tabeli przedstawiono właściwości, które można ustawić w celu kontrolowania rozmiaru DataGrid .

Właściwości opis
Height Ustawia określoną wysokość dla elementu DataGrid.
MaxHeight Ustawia górną granicę dla wysokości DataGridobiektu . Będzie DataGrid rosnąć w pionie, dopóki nie osiągnie tej wysokości.
MinHeight Ustawia dolną granicę wysokości DataGridobiektu . Spowoduje DataGrid to zmniejszenie w pionie do momentu osiągnięcia tej wysokości.
Width Ustawia określoną szerokość elementu DataGrid.
MaxWidth Ustawia górną granicę dla szerokości DataGridobiektu . Będzie DataGrid rosnąć w poziomie, dopóki nie osiągnie tej szerokości.
MinWidth Ustawia dolną granicę dla szerokości DataGridobiektu . Będzie DataGrid zmniejszać się w poziomie, dopóki nie osiągnie tej szerokości.

Ustalanie rozmiaru wierszy i nagłówków wierszy

Wiersze usługi DataGrid

Domyślnie DataGrid właściwość wiersza Height jest ustawiona na Double.NaN ("Auto" w języku XAML), a wysokość wiersza zostanie rozwinięta do rozmiaru jego zawartości. Wysokość wszystkich wierszy w obiekcie DataGrid można określić, ustawiając DataGrid.RowHeight właściwość . Użytkownicy mogą zmieniać wysokość wiersza, przeciągając separatory nagłówków wierszy.

Nagłówki wierszy usługi DataGrid

Aby wyświetlić nagłówki wierszy, właściwość musi być ustawiona HeadersVisibility na DataGridHeadersVisibility.Row lub DataGridHeadersVisibility.All. Domyślnie nagłówki wierszy są wyświetlane i mają automatycznie rozmiar w celu dopasowania ich do zawartości. Nagłówki wierszy mogą mieć określoną szerokość, ustawiając DataGrid.RowHeaderWidth właściwość .

Ustalanie rozmiaru kolumn i nagłówków kolumn

Kolumny DataGrid

Funkcja DataGrid używa wartości i DataGridLengthUnitType struktury do określania bezwzględnych DataGridLength lub automatycznych trybów ustalania rozmiaru.

W poniższej DataGridLengthUnitType tabeli przedstawiono wartości podane przez strukturę.

Nazwa/nazwisko opis
Auto Domyślny tryb automatycznego określania rozmiaru kolumn określa kolumny DataGrid na podstawie zawartości zarówno komórek, jak i nagłówków kolumn.
SizeToCells Automatyczne ustalanie rozmiaru kolumn w trybie DataGrid automatycznego określania rozmiaru na podstawie zawartości komórek w kolumnie, a nie w tym nagłówków kolumn.
SizeToHeader Kolumny automatycznego określania rozmiaru oparte na nagłówkach są określane DataGrid tylko na podstawie zawartości nagłówków kolumn.
Pixel Kolumny trybu ustalania rozmiaru oparte na pikselach DataGrid są określane na podstawie podanej wartości liczbowej.
Star Tryb określania rozmiaru gwiazdy jest używany do dystrybucji dostępnego miejsca według proporcji ważonych.

W języku XAML wartości gwiazdek są wyrażane jako n*, gdzie n reprezentuje wartość liczbową. Wartość 1* jest równoważna *. Jeśli na przykład dwie kolumny w obiekcie DataGrid mają szerokość * i 2*, pierwsza kolumna otrzyma jedną część dostępnego miejsca, a druga kolumna otrzyma dwie części dostępnego miejsca.

Klasa może służyć do konwertowania DataGridLengthConverter danych między wartościami DataGridLength liczbowymi lub ciągami.

Domyślnie właściwość jest ustawiona DataGrid.ColumnWidth na SizeToHeader, a właściwość jest ustawiona DataGridColumn.Width na Auto. Gdy tryb określania rozmiaru jest ustawiony na Auto lub SizeToCells, kolumny będą rosnąć do szerokości ich najszerszej widocznej zawartości. Podczas przewijania te tryby określania rozmiaru spowodują rozwinięcie kolumn, jeśli zawartość jest większa niż bieżący rozmiar kolumny jest przewijany do widoku. Kolumna nie zmniejsza się po przewinięciu zawartości z widoku.

Kolumny w obiekcie DataGrid można również ustawić tak, aby automatycznie ustawiały rozmiar tylko w określonych granicach, a kolumny można ustawić na określony rozmiar. W poniższej tabeli przedstawiono właściwości, które można ustawić w celu kontrolowania rozmiarów kolumn.

Właściwości opis
DataGrid.MaxColumnWidth Ustawia górną granicę dla wszystkich kolumn w obiekcie DataGrid.
DataGridColumn.MaxWidth Ustawia górną granicę dla pojedynczej kolumny. Zastępuje .DataGrid.MaxColumnWidth
DataGrid.MinColumnWidth Ustawia dolną granicę dla wszystkich kolumn w obiekcie DataGrid.
DataGridColumn.MinWidth Ustawia dolną granicę dla pojedynczej kolumny. Zastępuje .DataGrid.MinColumnWidth
DataGrid.ColumnWidth Ustawia określoną szerokość dla wszystkich kolumn w obiekcie DataGrid.
DataGridColumn.Width Ustawia określoną szerokość dla pojedynczej kolumny. Zastępuje .DataGrid.ColumnWidth

Nagłówki kolumn dataGrid

Domyślnie DataGrid są wyświetlane nagłówki kolumn. Aby ukryć nagłówki kolumn, właściwość musi być ustawiona HeadersVisibility na DataGridHeadersVisibility.Row lub DataGridHeadersVisibility.None. Domyślnie, gdy nagłówki kolumn są wyświetlane, są automatycznie rozmiary w celu dopasowania ich do zawartości. Nagłówki kolumn mogą mieć określoną wysokość, ustawiając DataGrid.ColumnHeaderHeight właściwość .

Zmiana rozmiaru za pomocą myszy

Użytkownicy mogą zmieniać rozmiar DataGrid wierszy i kolumn, przeciągając separatory nagłówków wierszy lub kolumn. Funkcja DataGrid obsługuje również automatyczną zmianę rozmiaru wierszy i kolumn przez dwukrotne kliknięcie modułu podziału nagłówka wiersza lub kolumny. Aby uniemożliwić użytkownikowi zmianę rozmiaru określonych kolumn, ustaw DataGridColumn.CanUserResize właściwość na false wartość dla poszczególnych kolumn. Aby uniemożliwić użytkownikom zmianę rozmiaru DataGrid.CanUserResizeColumns wszystkich kolumn, ustaw właściwość na false. Aby uniemożliwić użytkownikom zmianę rozmiaru DataGrid.CanUserResizeRows wszystkich wierszy, ustaw właściwość na false.

Zobacz też