동적 열 WPF DataGrid에 대한 XAML 데이터 바인딩
WPF 애플리케이션 디자인에서는 DataGrid에 가변 개수의 열이 포함된 데이터 세트를 표시해야 하는 경우가 있습니다. WPF에서는 프로그래밍 방식으로 표 열을 사용자 지정할 수 있는 유연성이 있지만 열 수가 많은 경우 이 접근 방식이 번거로울 수 있습니다.
이 경우 데이터 바인딩을 사용하여 XAML 파일에서 직접 열을 정의하는 것이 좋습니다. 이 문서에서는 BindableColumns
이라는 첨부된 속성을 생성하여 이를 달성하는 해결 방법을 살펴봅니다.
먼저 변경되는 열과 행을 나타내는 간단한 Data
클래스를 정의합니다.
<code class="language-csharp">public class Data { public IList<ColumnDescription> ColumnDescriptions { get; set; } public string[][] Rows { get; set; } }</code>
추가 속성 BindableColumns
은 ObservableCollection<DataGridColumn>
의 변경 사항을 관찰하여 DataGrid의 열을 관리합니다. 컬렉션이 변경되면 이 속성은 그에 따라 DataGrid의 열을 업데이트합니다.
<code class="language-csharp">public class DataGridColumnsBehavior { public static readonly DependencyProperty BindableColumnsProperty = ...; public static void BindableColumnsPropertyChanged(...) { DataGrid dataGrid = source as DataGrid; ObservableCollection<DataGridColumn> columns = e.NewValue as ObservableCollection<DataGridColumn>; // 清除现有列 dataGrid.Columns.Clear(); // 添加新列 if (columns != null) { foreach (DataGridColumn column in columns) { dataGrid.Columns.Add(column); } // 订阅集合更改事件 columns.CollectionChanged += ...; } } }</code>
이제 연결된 특성이 있으므로 DataGrid를 XAML의 ObservableCollection<DataGridColumn>
에 바인딩할 수 있습니다.
<code class="language-xaml"><DataGrid ... AutoGenerateColumns="False" local:DataGridColumnsBehavior.BindableColumns="{Binding ColumnCollection}" Name="dataGrid"/></code>
이 해결 방법을 사용하면 데이터 바인딩을 사용하여 XAML에서 직접 WPF DataGrid의 변경 가능한 열을 정의할 수 있습니다. 특히 가변 개수의 열을 처리할 때 편리하고 유지 관리가 쉬운 접근 방식을 제공합니다.
위 내용은 XAML 데이터 바인딩을 사용하여 WPF DataGrid를 가변 개수의 열에 바인딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!