WPF简单数据绑定
XAML:
<!--#region 数据绑定控件-->
<DataGrid x:Name="dataGrid" Grid.Column="2" Grid.ColumnSpan="4" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="编号" Width="*" Binding="{Binding Id}"></DataGridTextColumn>
<DataGridTextColumn Header="名称" Width="*" Binding="{Binding Name}"></DataGridTextColumn>
<DataGridTextColumn Header="时间" Width="*" Binding="{Binding CreateTime}"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
<!--#endregion-->
后台隐藏代码:
public partial class AllControl : Window
{ List<Users> usl = new List<Users>(); public AllControl()
{
usl.Add(new Users
{
Id = ,
Name = "maoyang",
CreateTime = DateTime.Now,
});
usl.Add(new Users
{
Id = ,
Name = "zhangfan",
CreateTime = Convert.ToDateTime("2018/7/30 8:30:00"),
});
usl.Add(new Users
{
Id = ,
Name = "kejing",
CreateTime = Convert.ToDateTime("2018/7/30 9:00:00"),
});
InitializeComponent();
} private void button1_Click(object sender, RoutedEventArgs e)
{
this.dataGrid.ItemsSource = usl;
} } public class Users
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime CreateTime { get; set; }
}
此时如果修改字段,UI界面数据不能实时更新,需要以下修改:
1:把类继承INotifyPropertyChanged这个接口,并实现接口,然后添加定义OnPropertyChanged方法
public class Users : INotifyPropertyChanged
{
private int id;
private string name;
private DateTime createTime; public int Id
{
get
{
return id;
} set
{
id = value;
OnPropertyChanged("Id");
}
} public string Name
{
get
{
return name;
} set
{
name = value;
OnPropertyChanged("Name");
}
} public DateTime CreateTime
{
get
{
return createTime;
} set
{
createTime = value;
OnPropertyChanged("CreateTime");
}
} public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
写一个修改列表中的字段事件:
/// <summary>
/// 点击更改按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Update_Click(object sender, RoutedEventArgs e)
{
#region
Users usi = usl.Where(x => x.Id == ).FirstOrDefault();
usi.Id = ;
usi.Name = "老虎";
usi.CreateTime = DateTime.Now;
#endregion
}
XAML修改按钮:
<!--#region 点击更改按钮-->
<Button x:Name="Update" Width="100" Height="30" Background="AntiqueWhite" VerticalAlignment="Center" HorizontalAlignment="Center" Content="点击更改按钮" Click="Update_Click"></Button>
<!--#endregion-->
此时点击这个修改的按钮,UI界面数据即可实时更新
WPF简单数据绑定的更多相关文章
- WPF简单入门总结
WPF简单总结 最近看了点关于WPF的东西,总结了点点入门的东西. XAML语法基础 1. 定义样式 <Window.Resources><!--窗体资源的定义--> < ...
- WPF:数据绑定总结(1) https://segmentfault.com/a/1190000012981745
WPF:数据绑定总结(1) visual-studio c# 1.3k 次阅读 · 读完需要 16 分钟 0 一.概念:什么是数据绑定? WPF中的数据绑定:是在应用程序 UI 与业务逻辑之间建立 ...
- 【翻译】使用Knockout, Web API 和 ASP.Net Web Forms 进行简单数据绑定
原文地址:http://www.dotnetjalps.com/2013/05/Simple-data-binding-with-Knockout-Web-API-and-ASP-Net-Web-Fo ...
- Knockout, Web API 和 ASP.Net Web Forms 进行简单数据绑定
使用Knockout, Web API 和 ASP.Net Web Forms 进行简单数据绑定 原文地址:http://www.dotnetjalps.com/2013/05/Simple-da ...
- wpf 导出Excel Wpf Button 样式 wpf简单进度条 List泛型集合对象排序 C#集合
wpf 导出Excel 1 private void Button_Click_1(object sender, RoutedEventArgs e) 2 { 3 4 ExportDataGrid ...
- wpf Content数据绑定StringFormat起作用的原理和解决
原文:wpf Content数据绑定StringFormat起作用的原理和解决 <Window x:Class="WpfOne.Bind.Bind6" xmlns=" ...
- .NET CORE(C#) WPF简单菜单MVVM绑定
微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. .NET CORE(C#) WPF简单菜单MVVM绑定 阅读导航 本文背景 代码实现 本文参考 ...
- silverlight简单数据绑定3
3种数据绑定模式 OneTime(一次绑定) OneWay(单项绑定) TwoWay(双向绑定) OneTime:仅在数据绑定创建时使用数据源更新目标. 列子: 第一步,创建数据源对象让Person ...
- DataGrid列表信息保存为EXCEL到指定的路径 ---------继续DataGrid在WPF的数据绑定
一.许多WPF或者Winform程序在保存数据时,会以EXCEL或者文本的形式展现可视化界面的数据,本文就简单介绍下将DataGrid列表信息保存为EXCEL到指定的路径下,例子很简单,用的着的直接用 ...
随机推荐
- Zookeeper常用操作命令 ls,ls2,get和stat
一.启动zk客户端 进入bin目录 cd /usr/local/zookeeper-3.4.13/bin ./zkCli.sh 出现如下界面,说明已经连接上了 二.ls与ls2命令 1. ls pa ...
- 《Windows核心编程》第3章——深入理解handle
本文借助windbg来理解程序中的函数如何使用handle对句柄表进行查询的.所以先要开启Win7下Windbg的内和调试功能. 解决win7下内核调试的问题 win7下debug默认无法进行内核调试 ...
- 浏览器实现PDF预览
1.使用jquery.media.js预览PDF <!DOCTYPE html> <html> <head> <meta charset="utf- ...
- GBT27930-2015电动汽车非车载传导式充电机与电池管理系统之间的通信协议
本标准规定了电动汽车非车载传导式充电机(简称充电机)与电池管理系统(Battery Management System,简称BMS)之间基于控制器局域网(Control Area NetWork,简称 ...
- 并行计算——理想的PRAM模型
PRAM(Parallel Random Access Machine)模型是多指令流多数据流(MIMD)并行机中的一种具有共享存储的模型.它假设有一个无限大容量的共享存储器,并且有多个功能相同的处理 ...
- JFrame关闭程序就退出的设置
要是实现JFrame 关闭后程就退出或者停止可以调用setDefaultCloseOperation() 方法. 入下图程序 package ltb6w; import javax.swing.*; ...
- 关于Zookeeper选举机制
zookeeper集群 配置多个实例共同构成一个集群对外提供服务以达到水平扩展的目的,每个服务器上的数据是相同的,每一个服务器均可以对外提供读和写的服务,这点和redis是相同的,即对客户端来讲每个服 ...
- TCP/IP学习20180626-数据链路层
数据链路层有三个目的: 为IP模块发送和 接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RARP请 求和接收RARP应答 ip大家都听说过. ARP叫做地址解析协议,是 ...
- NGUI的字体加粗效果
ngui的UILabel可以通过属性面板(inspector)设置字体的样式:加粗 倾斜 正常等. 但是如果通过这里设置了加粗,与实际的加粗不一样,ngui有一个拉伸宽度的变化. 这让人觉得很丑 .如 ...
- maven不同环境的profile配置
1.开发的时候经常需要加载不同的环境,比如本地开发环境dev,生产环境product.如果需要手动去修改的话就太麻烦了,自己实现了maven资源替换,然后多环境下的配置文件管理的demo,在此贴出来. ...