Wpf DataGrid的数据绑定

在项目开发的过程,通常会遇到一些表格数据的绑定,因为没有WPF的开发经验所以一边摸索一边开发,所幸WPF的上手难度不大,开发过程较为顺利。不过在使用DataGrid的时候还是遇到了一点阻绊遇。所以在这里讲一下这个DataGrid应该怎么用,以及要注意的事情。

DataGrid是个非常实用的控件,可以用来展示及获取较为复杂的数据结构。

要在WPF下使用DataGrid并绑定数据,大致操作如下:

1、在资源视图xml文件中添加DataGrid,并设置绑定,如下。

<Window x:Class=“Wpfdemo.Window1”

    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:Wpfdemo"

    mc:Ignorable="d"

    Title="Window1" Height="300" Width="300">

<Grid>

    <DataGrid AutoGenerateColumns="False" HorizontalAlignment="Stretch" Margin="5,5" Name="dataGrid1" VerticalAlignment="Stretch" ItemsSource="{Binding}" HorizontalGridLinesBrush="Gainsboro" VerticalGridLinesBrush="Gainsboro">

        <DataGrid.Columns>

            <DataGridTextColumn Header=" ID " Binding="{Binding ID}" ></DataGridTextColumn>

            <DataGridTextColumn Header="姓 名" Width ="100" Binding="{Binding Name}" ></DataGridTextColumn>

            <DataGridTextColumn Header="电 话" Width ="100" Binding="{Binding PhoneNumber}" ></DataGridTextColumn>

            <DataGridTextColumn Header="住 址" Width ="100" Binding="{Binding Address}" ></DataGridTextColumn>

        </DataGrid.Columns>

    </DataGrid>

</Grid>

在初始化代码中设置DataGrid绑定到的对象。
{

    public Window1()

    {

        InitializeComponent();

        DataTable dt = new System.Data.DataTable();

        dt.Columns.Add("ID", typeof(int));

        dt.Columns.Add("Name", typeof(string));

        dt.Columns.Add("PhoneNumber", typeof(string));

        dt.Columns.Add("Address", typeof(string));

        DataRow row = dt.NewRow();

        row["ID"] = 1;

        row["Name"] = "张三";

        row["PhoneNumber"] = "239456";

        row["Address"] = "北京";

        dt.Rows.Add(row);

        row = dt.NewRow();

        row["ID"] = 2;

        row["Name"] = "李四";

        row["PhoneNumber"] = "982089*5";

        row["Address"] = "广东";

        dt.Rows.Add(row);

        //dataGrid1.DataContext = dt;

        dataGrid1.ItemsSource = dt.DefaultView;

        //设置网格线

        dataGrid1.GridLinesVisibility = DataGridGridLinesVisibility.All;

    }

效果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41883890/article/details/128951145