WPF更新数据源

using System;
using System.Collections.Generic;
using
System.Linq;
using System.Text;
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;

using System.ComponentModel;

namespace Leo.WpfTest
{
/// <summary>
///
MainWindow.xaml 的交互逻辑
/// </summary>
public partial class
MainWindow : Window
{
public MainWindow()

{
InitializeComponent();

this.InitData();
}

internal void InitData()
{

IList<ModCls> modsCls = new List<ModCls>();
for
(int i = 0; i < 60; i++)
{
ModCls mod
= new ModCls();
mod.A = "A" + i;

mod.B = "B" + i;
mod.C = "C" + i;

modsCls.Add(mod);
}

this.gridCls.ItemsSource = modsCls;

this.gridCls.RefreshData();

}

private void Button_Click_1(object sender, RoutedEventArgs
e)
{
ModCls mod = new ModCls();

mod.A = "A0";
mod.B = "BB";
mod.C =
"CC";

IList<Leo.WpfTest.ModCls> temp =
this.gridCls.ItemsSource as List<Leo.WpfTest.ModCls>;

IList<Leo.WpfTest.ModCls> tempA = (from p in temp

where p.A == mod.A
select
p).ToList();
if (tempA != null && tempA.Count >
0)
{

for (int i = 0; i < temp.Count; i++)

{
if (temp[i].A == mod.A)

{
temp[i] = mod;

continue;
}
}

this.gridCls.RefreshData();
}

}
}

public class ModCls : INotifyPropertyChanged
{

public event PropertyChangedEventHandler PropertyChanged;

private string a;
public string A
{

set
{
a = value;

if (PropertyChanged != null)//有改变
{
PropertyChanged(this, new
PropertyChangedEventArgs("A"));
}
}

get
{
return a;

}
}
private string b;
public string B

{
set
{
b =
value;
if (PropertyChanged != null)//有改变

{
PropertyChanged(this, new PropertyChangedEventArgs("B"));

}
}
get
{

return b;
}
}
private
string c;
public string C
{
set

{
c = value;
if
(PropertyChanged != null)//有改变
{
PropertyChanged(this, new
PropertyChangedEventArgs("C"));
}

}
get
{
return c;

}
}
}
}

时间: 2024-12-15 03:44:58

WPF更新数据源的相关文章

WPF 自带Datagrid编辑后无法更新数据源的问题

最近项目中遇到的问题,datagrid编辑后无法立刻与后台同步,只有失去焦点时才更新,在网上找了找,这个方法可以用用: 转自:http://blog.csdn.net/lianchangshuai/article/details/7787344 解决办法: 在列的绑定属性里加上UpdateSourceTrigger,示例XAML如下 <DataGrid Grid.Row="1" Height="274" HorizontalAlignment="Le

WPF 将数据源绑定到TreeView控件出现界面卡死的情况

首先来谈一下实现将自定义的类TreeMode绑定到TreeView控件上的一个基本的思路,由于每一个节点都要包含很多自定义的一些属性信息,因此我们需要将该类TreeMode进行封装,TreeView的每一个节点的类型都是TreeMode,我们还定义一些Children属性,Parent属性用于定义当前节点的子节点和父节点,当然还定义了一些常见的Name.ToolTip.ID.IsExpand.IsChecked(主要是在每一个节点前面添加了一个CheckBox)等属性,另外的一些属性就是具体需要

WPF绑定数据源之RelativeSource

Command="{Binding ConfirmRegisterCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self},Path=DataContext}" 一.FindAncestor 有时候我们不确定作为数据源的对象叫什么名字,但知道作为绑定源与UI布局有相对的关系,如下是一段XAML代码,说明多层布局控件中放置一个文本控件,来显示父级控件的名称.1.

Dev GridControl数据修改后实时更新数据源

  1:  /// <summary> 2:  /// 嵌入的ComboxEdit控件选择值变化事件 3:  /// </summary> 4: /// <param name="sender"></param> 5: /// <param name="e"></param> 6: private void repositoryItemComboBox_Gender_SelectedIndexC

Dev GridControl数据修改后实时更新数据源(转)

1:  /// <summary> 2:  /// 嵌入的ComboxEdit控件选择值变化事件 3:  /// </summary> 4: /// <param name="sender"></param> 5: /// <param name="e"></param> 6: private void repositoryItemComboBox_Gender_SelectedIndexCha

WINFORM中加入WPF控件并绑定数据源实现跨线程自动更新

1. WINFORM中添加两个ElementHost,一个放WPF的Button,一个放WPF的TextBox.其中TextBox与数据源绑定,实现跨线程也可以自动更新,而不会出现WINFORM的TextBox控件与数据源绑定后,存在子线程中更新数据源报错(跨线程更新控件)的情况. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System

准备.Net转前端开发-WPF界面框架那些事,值得珍藏的8个问题

题外话 不出意外,本片内容应该是最后一篇关于.Net技术的博客,做.Net的伙伴们忽喷忽喷..Net挺好的,微软最近在跨平台方面搞的水深火热,更新也比较频繁,而且博客园的很多大牛也写的有跨平台相关技术的博客.做.Net开发块五年时间,个人没本事,没做出啥成绩.想象偶像梅球王,年龄都差不多,为啥差别就这么大.不甘平庸,想趁机会挑战下其他方面的技术,正好有一个机会转前段开发. 对于目前正在从事或者工作中会用到WPF技术开发的伙伴,此片内容不得不收藏,本片介绍的八个问题都是在WPF开发工作中经常使用到

WPF基础篇----连接数据库

WPF连接DB2数据库        public void ConnectionBD2Func()        {            //连接数据库字符串            string strConn = "Provider=IBMDADB2;HostName=10.180.6.108;Database=workshop;port=50000;UID=eworkshop;PWD=workshop;";            using (OleDbConnection c

WPF Binding学习(二)

Binding作为数据的桥梁,连通业务逻辑层的对象(源对象)和UI的控件对象(目标对象).在这座桥梁上,我们不仅可以控制在源对象与目标对象是双向通行还是单向通行.还可以控制数据的放行时机,甚至可以在这座桥上搭建一些关卡用来转换数据类型或者检验数据的正确性 我们先做一个最基本的例子, 创建一个"Student"类,这个类的实例将作为数据源来使用 public class Student { private int _id; public int ID { get { return _id