zl程序教程

您现在的位置是:首页 >  .Net

当前栏目

C# DataGrid 用法---极速入门测试

2023-02-18 16:42:26 时间

目标:

新手编程,只求DataGrid能运行起来,更多功能留在后面探讨。

步骤:

1、新建WPF文档 插入DataGrid控件。

<Window x:Class="OASevl.MainWindow"
        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:OASevl"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <DataGrid x:Name="dataGrid" />
    </Grid>
</Window>

2、新建自定义类,用来显示数据。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OASevl
{
    class WsEvlData
    {
        public string name { get; set; }
        public double x { get; set; }
        public double y { get; set; }
        public double z { get; set; }

    }
}

类定义中最重要的是增加 get; set; 方法,有了这两个方法,DataGrid 才能显示出来。

3、添加代码进行测试。

namespace OASevl
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            List<WsEvlData> data = new List<WsEvlData>();
            //ArrayList data = new ArrayList();
            Random rd = new Random();
            for (int i = 0; i < 100; i++)
            {
                WsEvlData wd = new WsEvlData();
                wd.name = (i + 1).ToString();
                wd.x = rd.Next(1, 1000);
                wd.y = rd.Next(1, 1000);
                wd.z = rd.Next(1, 1000);
                
                //Console.WriteLine("{0}",wd.x);

                data.Add(wd);
            }

            dataGrid.ItemsSource = data;

        }
    }
}

测试中使用了 <随机数>函数,List集合、ArrayList集合 效果相同。

《WPF编程宝典 2012版》中,DataGrid 通过 DataSource 来指定数据源,在这里C# 2015社区版,使用 ItemsSource 来指定数据源。

最终效果:

字符串name、数值x y z 均能正确显示,点击标题栏可以自动排序,滚动条会自动出现,全选后 ctrl+C 可以将数据复制出来。对于一般的数据显示是够用了。