一、DataGrid简单使用
DataGrid的使用其实跟TreeView类似,只不过后台组织的对象结构不同,DataGrid一般不需要递归结构,它绑定的数据源,一个属性就代表一个一列,理解不了没事,我直接上代码。
定义了一个关于水果的对象(这次偷懒了,想着简单介绍下,就没按正规创建工程的方式来了)
private string name;
/// <summary>
/// 名字
/// </summary>
public string Name
{
get => name;
set
{
name = value;
OnPropertyChanged();
}
}
private int number;
/// <summary>
/// 数量
/// </summary>
public int Number
{
get => number;
set
{
number = value;
OnPropertyChanged();
}
}
private double price;
/// <summary>
/// 价格
/// </summary>
public double Price
{
get => price;
set
{
price = value;
OnPropertyChanged();
}
}
三个属性,对应三列,老规矩,写界面和ViewModel(代码很简单,自己写咯)
public ObservableCollection<DataGridModel> DataGridModels { get; set; } = new ObservableCollection<DataGridModel>();
public DataGridViewModel()
{
Create();
}
private void Create()
{
DataGridModels.Add(new DataGridModel()
{
Name = "苹果",
Number = 5,
Price = 1.5
});
DataGridModels.Add(new DataGridModel()
{
Name = "香蕉",
Number = 2,
Price = 15
});
DataGridModels.Add(new DataGridModel()
{
Name = "菠萝",
Number = 3,
Price = 10
});
}
写好直接运行,看看效果
一个对象,对应一行,一个属性,对应一列,跟TreeView每一级对应一个对象类似的,默认的样式有点。。。所以,接下来咱们美化它。
先美化列名成中文 ——>名称、数量、价格(DataGrid下有个Columns是包含所有的列,改列的样式一般也在这里面)
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}" Header="名称" />
<DataGridTextColumn Binding="{Binding Number}" Header="数量" />
<DataGridTextColumn Binding="{Binding Price}" Header="价格" />
</DataGrid.Columns>
运行,
嘶,怎么显示两次了。。。 (小问题)看官网发现DataGrids默认自动创建列的,这也就是我们一开始只绑定数据源就显示列的原因,AutoGenerateColumns="False",把这属性设置为False就行了。
接着创建其他的列类型(checkbox、combobox、hyperlink)
(如果这是一直对最后一行进行双击后,再切换到其他行,会增加一行),直接设置CanUserAddRows="False",让它不能创建行。
OK,接下来设置隔行变色:AlternatingRowBackground="LightBlue"(设置目标行的颜色),AlternationCount="2"(设置变色行间隔,最小值为2)
最后是对行和单元格的样式设置
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="SkyBlue" />
</Style>
</DataGrid.RowStyle>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
运行结果如图所示
结束
这次这个是非常简单的介绍,对应DataGrid中的DataGridTemplateColumn(非常强大)的运用,后面我是打算用个场景来展示DataGrid的应用,这篇文章就算是入门篇吧
当然,欢迎各位批评指正,谢谢啦文章来源:https://www.toymoban.com/news/detail-441404.html
附赠
这是我的demo源码:https://github.com/TQtong/DataGridDemo.git文章来源地址https://www.toymoban.com/news/detail-441404.html
到了这里,关于新手入门WPF之DataGrid控件(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!