Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengikat WPF DataGrid kepada Bilangan Boleh Ubah Lajur Menggunakan Pengikatan Data XAML?
Pengikatan data XAML untuk lajur dinamik WPF DataGrid
Dalam reka bentuk aplikasi WPF, kadangkala perlu memaparkan set data dengan bilangan lajur yang berubah-ubah dalam DataGrid. Walaupun WPF membenarkan fleksibiliti dalam menyesuaikan lajur grid secara pengaturcaraan, pendekatan ini boleh menjadi menyusahkan jika bilangan lajur adalah besar.
Dalam kes ini adalah lebih baik untuk menentukan lajur secara langsung dalam fail XAML menggunakan pengikatan data. Artikel ini meneroka penyelesaian untuk mencapai ini dengan mencipta atribut yang dilampirkan dipanggil BindableColumns
.
Pertama, tentukan kelas Data
mudah untuk mewakili lajur dan baris yang berubah:
<code class="language-csharp">public class Data { public IList<ColumnDescription> ColumnDescriptions { get; set; } public string[][] Rows { get; set; } }</code>
Atribut tambahan BindableColumns
mengurus lajur DataGrid dengan memerhati perubahan ObservableCollection<DataGridColumn>
. Apabila koleksi berubah, sifat ini mengemas kini lajur DataGrid dengan sewajarnya:
<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>
Kini setelah anda mempunyai atribut yang dilampirkan, anda boleh mengikat DataGrid ke ObservableCollection<DataGridColumn>
dalam XAML:
<code class="language-xaml"><DataGrid ... AutoGenerateColumns="False" local:DataGridColumnsBehavior.BindableColumns="{Binding ColumnCollection}" Name="dataGrid"/></code>
Penyelesaian ini membolehkan anda menentukan lajur boleh ubah WPF DataGrid secara langsung dalam XAML menggunakan pengikatan data. Terutama apabila berurusan dengan bilangan lajur yang berubah-ubah, ia menyediakan pendekatan yang mudah dan mudah diselenggara.
Atas ialah kandungan terperinci Bagaimana untuk Mengikat WPF DataGrid kepada Bilangan Boleh Ubah Lajur Menggunakan Pengikatan Data XAML?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!