WPF DataGrid

wpf datagrid属性:

WPF DataGrid 是一个多功能的控件,用于在表格视图中显示和编辑数据。以下介绍 DataGrid 常用的一些属性:

1.AutoGenerateColumns:表示是否自动生成列。如果设置为 true,则 DataGrid 将自动按列名生成列,并将列绑定到集合中的属性。默认值为 true。
2.ItemsSource:表示 DataGrid 中显示的数据源。可以直接绑定到一个集合对象,也可以手动创建列并绑定到集合中的属性。
3.CanUserAddRows、CanUserDeleteRows 和 CanUserResizeRows:表示用户能否添加、删除或调整行大小。
4.CanUserSortColumns、CanUserResizeColumns 和 CanUserReorderColumns:表示用户能否对列进行排序、调整大小或重新排序。
5.SelectionMode 和 SelectionUnit:表示选择模式和选择单位。SelectionMode 属性决定是否允许选择多个项,而 SelectionUnit 属性决定选择的单位是行还是单元格。
6.AlternatingRowBackground 和 Background:分别表示交替行背景颜色和 DataGrid 的背景颜色。
7.RowHeaderWidth 和 ColumnHeaderHeight:分别表示行标题的宽度和列标题的高度。
8.GridLinesVisibility:表示单元格之间的网格线可见性。
9.RowStyle 和 CellStyle:分别表示行和单元格的样式。可以通过设置 Style 属性来自定义样式。
10.IsReadOnly:表示 DataGrid 是否为只读。
11.ClipboardCopyMode:表示复制到剪贴板的内容类型。可选值包括 None、ExcludeHeader、IncludeHeader 和 All。
12.HorizontalScrollBarVisibility 和 VerticalScrollBarVisibility:表示水平和垂直滚动条的可见性。
13.CanUserResizeRows 和 RowHeight:分别表示用户是否可以调整行大小和行高度。
14.FrozenColumnCount:表示 DataGrid 最左边的几列将被锁定,不能水平滚动。
以上是 DataGrid 常用的一些属性,使用这些属性可以对 DataGrid 进行各种自定义设置,实现所需的数据呈现和交互行为。

wpf datagrid事件:

WPF DataGrid 是一个多功能的控件,除了常用的属性外,还提供了一些事件来实现交互和响应用户操作。以下是 DataGrid 常用的一些事件:
1.AutoGeneratingColumn:在自动生成列时发生。可以使用此事件修改生成的列。
2.BeginningEdit 和 CellEditEnding:分别表示开始编辑单元格和结束编辑单元格。可以使用这些事件对编辑进行验证或其他处理。
3.Sorting:在排序前发生。可以使用此事件取消排序,或根据需要修改排序方式。
4.SelectionChanged:在选择内容更改时发生。可以使用此事件对选定的行或单元格进行操作。
5.PreviewKeyDown 和 KeyDown:分别表示键被按下之前和之后。可以使用这些事件捕获特定键的按下事件,并执行相应的操作。
6.MouseDoubleClick 和 PreviewMouseDoubleClick:分别表示鼠标双击之前和之后。可以使用这些事件捕获鼠标双击事件,并执行相应的操作。
7.CurrentCellChanged:在当前单元格更改时发生。可以使用此事件对当前单元格进行操作。
8.LoadingRow:在每一行加载时发生。可以使用此事件对行进行初始化或其他处理。
9.UnloadingRow:在每一行卸载时发生。可以使用此事件对行进行资源释放或其他处理。
10.RowEditEnding:当行编辑完成并退出编辑模式时发生。可以使用此事件对行数据进行验证或其他处理。
以上是 DataGrid 常用的一些事件,可以根据需要使用这些事件实现交互和响应用户操作。

wpf datagrid布局示例:


    
        
        
        
    
    
        
        
        
    

    
    

    
    

    
    

下面是一个简单的 WPF DataGrid 绑定数据源的示例:


    
        
            
                
                
                
            
        
    

这个示例中的 DataGrid 绑定了一个名为 People 的集合。每个元素都具有 NameAgeGender 属性,这些属性分别绑定到了 DataGrid 的三列中。

在代码中,我们需要设置 DataContext 属性来指定数据源。在此示例中,我们可以在窗口构造函数中设置 DataContext 属性,如下所示:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        DataContext = new ViewModel();
    }
}

在 ViewModel 中,我们可以创建一个名为 People 的 ObservableCollection 来存储人员信息,并将其作为 DataGrid 的数据源。ViewModel 类的代码如下所示:

public class ViewModel
{
    public ObservableCollection People { get; set; }

    public ViewModel()
    {
        People = new ObservableCollection
        {
            new Person { Name = "John Doe", Age = 42, Gender = "Male" },
            new Person { Name = "Jane Doe", Age = 39, Gender = "Female" },
            new Person { Name = "Sammy Doe", Age = 13, Gender = "Non-Binary" }
        };
    }
}

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Gender { get; set; }
}

这个 ViewModel 可以在应用程序中的其他地方重复使用,而 DataGrid 只需要在 XAML 中进行绑定即可。

在 WPF 中使用 DataGrid 显示 SQL Server 数据库表数据

 
            
                
                
                
            
        

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace wpf22
{
    /// 
    /// Page1.xaml 的交互逻辑
    /// 
    public partial class Page1 : Page
    {
        public Page1()
        {
            InitializeComponent();
        }

        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
            dataGrid.ItemsSource = SqlDBHelper2.GetDataSet("select code,name,id from stockData;").DefaultView;
        }
    }
}

demo下载:

https://download.csdn.net/download/caoyanchao1/87701447

你可能感兴趣的:(C#-WPF,wpf,datagrid)