一.xaml代码:
注意:列的数据可以绑定,但Hearder的绑定要使用HearderTemplate中的TextBlock元素来实现,切记。
<Window x:Class="AirtightTest.TestView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:AirtightTest" mc:Ignorable="d" Title="TestView" Height="450" Width="800"> <Grid> <DataGrid x:Name="dgrid1" > <DataGrid.Columns> <DataGridTextColumn Binding="{Binding Value1}"> <DataGridTextColumn.HeaderTemplate> <DataTemplate> <TextBlock Text="{Binding DataContext.ColunmTitle1, RelativeSource={RelativeSource AncestorType={x:Type local:TestView}}}"/> </DataTemplate> </DataGridTextColumn.HeaderTemplate> </DataGridTextColumn> <DataGridTextColumn Binding="{Binding Value2}"> <DataGridTextColumn.HeaderTemplate> <DataTemplate> <TextBlock Text="{Binding DataContext.ColunmTitle2, RelativeSource={RelativeSource AncestorType={x:Type local:TestView}}}"/> </DataTemplate> </DataGridTextColumn.HeaderTemplate> </DataGridTextColumn> </DataGrid.Columns> </DataGrid> </Grid> </Window>
二.定义两个实体类
// 对应表头名称的实体类
public class MyTitle { public string ColunmTitle1 { get; set; } public string ColunmTitle2 { get; set; } }
// 对应表列的数据实体类 public class MyValue { public int Value1 { get; set; } public double Value2 { get; set; } }
三.实例化对象并设置绑定上下文
// 窗体类
public partial class TestView : Window {
// 窗体的构造中,实体化实体类并设置绑定 public TestView() { InitializeComponent(); MyTitle my = new MyTitle { ColunmTitle1 = "Title1", ColunmTitle2 = "Title2", }; DataContext = my; List<MyValue> value = new List<MyValue> { new MyValue { Value1 = 1, Value2 = 2.3 }, new MyValue { Value1 = 2, Value2 = 3.3 }, }; this.dgrid1.ItemsSource = value; } }
标签:实体类,get,绑定,DataGrid,Header,set,new,public From: https://www.cnblogs.com/duju/p/17514016.html