美文网首页
WPF DataGrid 基本使用

WPF DataGrid 基本使用

作者: Ritchie_Li | 来源:发表于2022-05-22 15:12 被阅读0次

    效果如下:

    1. 设计DataGrid展示的数据模型类

    public class Song

    {

      public int Id { get; set; }

      public string Title { get; set; }

      public string Artist { get; set; }

      public bool IsSoundtrack { get; set; }

      public string MovieTitle { get; set; }

      public Genre Genre { get; set; }

      public DateTime ReleaseDateTime { get; set; }

      public Uri URL { get; set; }

    }

    创建枚举类型

    public enum Genre

    {

      HeavyMetal, HardRock, SoftRock, ClassicRock, Rock, Pop, PopSoul, Soul, Blues, Jazz, RB, Country, Folk, Funk,

    Classical, ChristmasCarol, Classic

    }

    2. 创建模型的数据集合

    用来展示在UI的DataGrid中

    public class Songs

    {

      public List<Song> songList { get; set; } = GetSongs();

      public static List<Song> GetSongs()

      {

        var file = System.IO.Path.Combine($"{ AppDomain.CurrentDomain.BaseDirectory}", "songs.txt");

        var lines = File.ReadAllLines(file);

        var list = new List<Song>();

        for (int i = 0; i < lines.Length; i++)

        {

          try

          {

              var line = lines[i].Split(',');

               var temp = line[2].Split(' ', '&', '-');

               var gr = temp.Length > 1 ? temp[0] + temp[1] : temp[0];

               var song = new Song()

              {

                  Id = int.Parse(line[0]),

                  Title = line[1],

                  Artist = line[3],

                  IsSoundtrack = line[4].Trim() == "Unknown" ? false : true,

                  MovieTitle = line[4],

                 Genre = (Genre)Enum.Parse(typeof(Genre), gr),

                 URL = new Uri($"www.{line[3]}.com", UriKind.Relative),

            ReleaseDateTime = DateTime.Parse(line[5] + ",01,01")

            };

              list.Add(song);

        }

      catch (Exception ex)

        {

            throw new Exception(ex.Message);

        }

      }

        return list;

    }

    3.UI添加数据绑定

    添加DataContent

    <Window.DataContext>

      <local:Songs/>

    </Window.DataContext>

    添加Resource

    <Window.Resources>

      <Style TargetType="DataGridColumnHeader">

        <Setter Property="FontSize" Value="16"/>

        <Setter Property="FontWeight" Value="DemiBold"/>

          <Setter Property="Background" Value="Black"/>

          <Setter Property="Foreground" Value="White"/>

        </Style>

        <Style TargetType="DataGridCell">

          <Setter Property="BorderBrush" Value="Gainsboro"/>

                <Setter Property="BorderThickness" Value="3"/>

          </Style>

    </Window.Resources>

    数据绑定

    <Grid>

    <DataGrid x:Name="DG" ItemsSource="{Binding songList}"

                      HorizontalGridLinesBrush="Blue"

                      VerticalGridLinesBrush="Green"

                      GridLinesVisibility="None"

                      CanUserAddRows="False"

                      CanUserSortColumns="True"

                      CanUserReorderColumns="False"

                      IsReadOnly="False"

                      CanUserResizeColumns="True"

                      CanUserResizeRows="True"

                      SelectionUnit="FullRow"

                      RowBackground="AliceBlue"

                      AlternatingRowBackground="LightGreen"

                      FlowDirection="LeftToRight"

                      FontSize="18"

                      FrozenColumnCount="3"

                      >

        </DataGrid>

    </Grid>

    其中的属性可以做修改,再运行验证效果是如果变化的,加深对属性的理解。

    相关文章

      网友评论

          本文标题:WPF DataGrid 基本使用

          本文链接:https://www.haomeiwen.com/subject/mvmkprtx.html