在 WPF 中,可以使用 DataGrid 控制項來顯示和編輯表格式的數據。要設置 DataGrid 列標題的動態綁定,可以使用 DataGrid 的列定義和綁定功能。 以下是一個示例,展示如何使用動態綁定設置 DataGrid 的列標題: 在 XAML 中定義 DataGrid 控制項,併為其定義列: ...
在 WPF 中,可以使用 DataGrid 控制項來顯示和編輯表格式的數據。要設置 DataGrid 列標題的動態綁定,可以使用 DataGrid 的列定義和綁定功能。
以下是一個示例,展示如何使用動態綁定設置 DataGrid 的列標題:
- 在 XAML 中定義 DataGrid 控制項,併為其定義列:
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding PersonsView}"> <DataGrid.Columns> <DataGridTextColumn Header="Name" Binding="{Binding Name}"/> <DataGridTextColumn Header="Age" Binding="{Binding Age}"/> <!--後臺動態設置列表標題--> <DataGridTextColumn Width="120" Binding="{Binding Email}"> <!--顯示標題需要在DataGridTextColumn.Header中綁定,否則不生效--> <DataGridTextColumn.Header> <!--向上查找數據源,然後綁定數據--> <TextBlock Text ="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window},Path=DataContext.HeaderEmail,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}" /> </DataGridTextColumn.Header> </DataGridTextColumn> </DataGrid.Columns> </DataGrid>
- 在代碼後臺(如 ViewModel 或 Code-behind)中,為 DataGrid 的 ItemsSource 屬性設置綁定,並提供數據源:
public class DataGridViewModel : INotifyPropertyChanged { public ObservableCollection<Person> Persons { get; set; } = new ObservableCollection<Person>() { new Person() { Name = "John Doe", Age = 25, Email = "[email protected]" }, new Person() { Name = "Jane Smith", Age = 30, Email = "[email protected]" }, // Add more items here... }; public DataGridViewModel() { this.PersonsView = new CollectionViewSource { Source = this.Persons }; this.DataContext = this; HeaderEmail = "Email"; } public ICollectionView PersonsView { get; set; } public event PropertyChangedEventHandler PropertyChanged; private string headerEmail; public string HeaderEmail { get { return headerEmail; } set { headerEmail = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(HeaderEmail))); } } }
這樣,DataGrid 的列標題將會根據定義的數據源動態顯示。在示例中,通過將 DataGrid 的 ItemsSource 屬性綁定到 ViewModel 中的 ObservableCollection,並通過列定義中的 Header 和 Binding 屬性來指定列標題和數據源中的欄位。