54.DataGrid数据框图 C#例子 WPF例子

server/2025/1/23 22:08:49/

首先是绑定一个属性,属性名称无所谓。到时候看属性设置的啥,可能要改。

<DataGrid ItemsSource="{Binding Index_instance}"/>

然后创建INotifyPropertyChanged的类,并把相关固定的代码粘贴上去。

然后把这个目录类建好,要用

    public class Index1{public int Id { get; set; }public string Name { get; set; }public string Status { get; set; }}

用这个目录类创建属性

 private ObservableCollection<Index1> _index_instance;public ObservableCollection<Index1> Index_instance{get { return _index_instance; }set{_index_instance = value;OnPropertyChanged(nameof(Index_instance));}}

再创建构造函数,搞三个实例,并赋值。

        public Notify(){Index_instance = new ObservableCollection<Index1>{new Index1() {Id= 1, Name="Test 1", Status="Active" },new Index1() {Id= 2, Name="Test 2", Status="Inactive" },new Index1() {Id= 3, Name="Test 3", Status="Bad" },};}

最后一步,把窗口资源导向这个类的实例

DataContext = new Notify();

后台代码:

主窗口后台使用DataContext = new Notify();对应的类名称来引入自己定义的类里面的属性。

在VieModel中

class ViewModel:INotifyPropertyChanged
{private ObservableCollection<Index1> _dataGridSource;public ObservableCollection<Index1> DataGridSource{get { return _dataGridSource; }set { _dataGridSource = value;OnPropertyChanged(nameof(DataGridSource));}}public ViewModel(){_dataGridSource = new ObservableCollection<Index1>{new Index1(){Id=1,Name="Alic",Description="Active"}, new Index1(){Id=2,Name="Baliy",Description="Inactive"},new Index1(){Id=3,Name="Cecy",Description="Down"},};}//固定部分public event PropertyChangedEventHandler PropertyChanged;protected void OnPropertyChanged(string propertyName){PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}}
public class Index1
{public int Id { get; set; }public string Name { get; set; }public string Description { get; set; }
}

XAML部分:

<Window x:Class="DataGrid练习2.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:DataGrid练习2"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Grid><DataGrid Margin="30" ItemsSource="{Binding DataGridSource}"/></Grid>
</Window>


http://www.ppmy.cn/server/160865.html

相关文章

2K200Hz显示器哪个值得选?

眼花缭乱的显示器市场&#xff0c;究竟在2K200Hz显示器这个领域&#xff0c;哪个品牌的哪个型号值得选呢&#xff1f;今天就来给大家讲讲。 1.HKC G27H2Pro - 2K200Hz显示器哪个值得选 外观设计 - HKC G27H2Pro 2K200Hz显示器 整体风格&#xff1a;G27H2Pro 的外观充满电竞风…

【Tortoise-ORM】 高级特性与实战

文章目录 6. 迁移与数据库管理使用 Tortoise-ORM 与 aerich 进行数据库迁移管理安装 aerich配置 aerich创建和应用数据库迁移1. 创建迁移2. 查看迁移历史3. 应用迁移4. 回滚迁移 迁移常见问题 7. 事务管理使用 Tortoise 提供的事务管理1. 开始事务&#xff1a;2. 提交事务&…

react中hooks之useDebugValue用法总结

1. 基本概念 useDebugValue 是一个 React Hook&#xff0c;用于在 React DevTools 中为自定义 Hook 添加标签。它可以帮助我们在开发过程中更好地调试和理解自定义 Hook 的状态。 1.1 基本语法 useDebugValue(value, formatFn?)value: 要在 DevTools 中显示的值formatFn: (…

openssl 生成证书 windows导入证书

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

基于微信小程序的模拟考试系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

Vue2:el-tree用scope slot为每一个节点添加一个鼠标悬浮时出现的右对齐的按钮

el-tree中,每一个节点后面添加一个按钮,响应除节点点击事件之外的操作,要求: 1、按钮在鼠标悬浮在该节点之上时才出现 2、按钮右对齐 实现如下。 1、为每个节点添加按钮 从官网说明来看,有两种方式添加按钮,render-content和 scoped slot,我使用的是scoped slot方式…

Django学习笔记(安装和环境配置)-01

Django学习笔记(安装和环境配置)-01 一、创建python环境 1、可以通过安装Anaconda来创建一个python环境 # 创建一个虚拟python环境 conda create -n django python3.8 # 切换激活到创建的环境中 activate django2、安装django # 进入虚拟环境中安装django框架 pip install …

AI大模型-提示工程学习笔记11-思维树

卷首语&#xff1a;我所知的是我自己非常无知&#xff0c;所以我要不断学习。 写给AI入行比较晚的小白们&#xff08;比如我自己&#xff09;看的&#xff0c;大神可以直接路过无视了。 思维树&#xff08;Tree of Thoughts, ToT&#xff09; 是一种提示工程技术&#xff0c;…