美文网首页
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