CYQ.Data 支持WPF相关的数据控件绑定(2013-08-09)

简介:

事件的结果

经过多天的思考及忙碌的开发及测试,CYQ.Data 终于在UI上全面支持WPF,至此,CYQ.Data 已经可以方便支持wpf的开发,同时,框架仍保留最低.net framework2.0版本的支持。

支持WPF的起因:

CYQ.Data 一直是基于2.0语法下支持开发的框架,在未直接支持WPF之前,对于控件列表的绑定,因为WPF竟然不支持DataTable,研究后发现需要从MDataTable.ToDataTable().DefaultView来转一次绑定;另外对于UI控件,也只能原始的赋值方式类似:txtName.Text=u.Name。
由于很少接触WPF,同时想保留最低2.0版本支持的底线,一直没怎么潜心研究对WPF如何更好的支持。
最近有两个契机,让我想支持WPF的开发:
1:我重新看了下WPF的一些基础开发知识。

2:第N次见到了扩展方法,突然似乎想到了什么。

于是,花了三天的时间左右,终于全面测试通过支持上WPF,当然,框架仍保留最低2.0版本支持。

WPF下的测试案例:

 示例界面:内容包括WPF下增删改查:

 

直接在ID处输入14,点Fill按钮,相关值会自动填充:

 

使用CYQ.Data CodeFirst 用文本数据库示例一个Users表:

复制代码
    class Users:CYQ.Data.Orm.OrmBase
    {
        public Users()
        {
            base.SetInit(this, "Users", "txt path={0};ts=0");
        }
        public int ID
        {
            get;
            set;
        }
        public string Name
        {
            get;
            set;
        }
        public bool IsEnabled
        {
            get;
            set;
        }
        public string TypeName
        {
            get;
            set;
        }
        public DateTime CreateTime
        {
            get;
            set;
        }
    }
复制代码
添加(Add按钮):采用自动取值,不用单个控件式的u.GetFrom(txtName);
复制代码
private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            using (Users u = new Users())
            {
                u.SetAutoParentControl(this);
                if (u.Insert(true, InsertOp.Fill))
                {
                    u.SetToAll(this);
                }
            }
        }
复制代码
更新(Update按钮):同样采用自动式取值。
复制代码
  private void btnUpdate_Click(object sender, RoutedEventArgs e)
        {
            using (Users u = new Users())
            {
                u.SetAutoParentControl(this);
                if (u.Update(txtID.Text, true))
                {
                    Load();
                }
            }
        }
复制代码
删除(Delete按钮):只需要一个ID。
复制代码
  private void btnDelete_Click(object sender, RoutedEventArgs e)
        {
            using (Users u = new Users())
            {
                u.Delete(txtID.Text);
            }
        }
复制代码
单个查询(Fill):根据ID查询后,自动批量赋值。
复制代码
private void btnFill_Click(object sender, RoutedEventArgs e)
        {
            using (Users u = new Users())
            {
                if (u.Fill(txtID.Text))
                {
                    u.SetToAll(this);
                }
            }
        }
复制代码
列表控件绑定(默认窗体Loaded事件调用):直接支持绑定WPF的DataGrid控件。
复制代码
void Load()
        {
            using (Users u = new Users())
            {
                u.Select().Bind(gvUsers);
            }
        }
复制代码

总结: 

在整个增删改查中,我们几乎不涉及到具体的控件(除了ID示例中具体到txtID这个控件),都是采用自动化取值和赋值实现的功能,这种自动化方式,相信对于一些自定义表单式的开发,那是如虎添翼了,这就是在UI支持的强大。

相同的代码,在WebForm和传统Winform,也是一样的。

 

本节就介绍到这里,在这三天的思考过程和实现中遇到的问题,将由下篇文章写一下技术要点。

本文原创发表于博客园,作者为路过秋天,原文链接:http://www.cnblogs.com/cyq1162/p/3248632.html
相关文章
|
C# 开发者 Windows
一款基于Fluent设计风格、现代化的WPF UI控件库
一款基于Fluent设计风格、现代化的WPF UI控件库
400 1
|
C# Windows
WPF中如何使用HandyCotrol控件库
WPF中如何使用HandyCotrol控件库
661 1
|
传感器 C# 监控
硬件交互新体验:WPF与传感器的完美结合——从初始化串行端口到读取温度数据,一步步教你打造实时监控的智能应用
【8月更文挑战第31天】本文通过详细教程,指导Windows Presentation Foundation (WPF) 开发者如何读取并处理温度传感器数据,增强应用程序的功能性和用户体验。首先,通过`.NET Framework`的`Serial Port`类实现与传感器的串行通信;接着,创建WPF界面显示实时数据;最后,提供示例代码说明如何初始化串行端口及读取数据。无论哪种传感器,只要支持串行通信,均可采用类似方法集成到WPF应用中。适合希望掌握硬件交互技术的WPF开发者参考。
306 0
|
C# 开发者 数据处理
WPF开发者必备秘籍:深度解析数据网格最佳实践,轻松玩转数据展示与编辑大揭秘!
【8月更文挑战第31天】数据网格控件是WPF应用程序中展示和编辑数据的关键组件,提供排序、筛选等功能,显著提升用户体验。本文探讨WPF中数据网格的最佳实践,通过DevExpress DataGrid示例介绍其集成方法,包括添加引用、定义数据模型及XAML配置。通过遵循数据绑定、性能优化、自定义列等最佳实践,可大幅提升数据处理效率和用户体验。
220 0
|
C# 前端开发 UED
WPF数据验证实战:内置控件与自定义规则,带你玩转前端数据验证,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,数据验证是确保输入正确性的关键环节。前端验证能及时发现错误,提升用户体验和程序可靠性。本文对比了几种常用的WPF数据验证方法,并通过示例展示了如何使用内置验证控件(如`TextBox`)及自定义验证规则实现有效验证。内置控件结合`Validation`类可快速实现简单验证;自定义规则则提供了更灵活的复杂逻辑支持。希望本文能帮助开发者更好地进行WPF数据验证。
478 0
|
数据处理 开发者 C#
WPF数据绑定实战:从零开始,带你玩转数据与界面同步,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,数据绑定是核心技能之一,它能实现界面元素与数据源的同步更新。本文详细介绍了WPF数据绑定的概念与实现方法,包括属性绑定、元素绑定及路径绑定等技术,并通过示例代码展示了如何创建数据绑定。通过数据绑定,开发者不仅能简化代码、提高可维护性,还能提升用户体验。无论初学者还是有经验的开发者,都能从中受益,更好地掌握WPF数据绑定技巧。
328 0
|
C# UED 定位技术
WPF控件大全:初学者必读,掌握控件使用技巧,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,控件是实现用户界面交互的关键元素。WPF提供了丰富的控件库,包括基础控件(如`Button`、`TextBox`)、布局控件(如`StackPanel`、`Grid`)、数据绑定控件(如`ListBox`、`DataGrid`)等。本文将介绍这些控件的基本分类及使用技巧,并通过示例代码展示如何在项目中应用。合理选择控件并利用布局控件和数据绑定功能,可以提升用户体验和程序性能。
541 0
|
开发框架 .NET C#
WPF/C#:显示分组数据的两种方式
WPF/C#:显示分组数据的两种方式
198 0
|
XML C# 数据格式
WPF/C#:如何将数据分组显示
WPF/C#:如何将数据分组显示
146 0
|
前端开发 C#
wpfui:一个开源免费具有现代化设计趋势的WPF控件库
wpfui:一个开源免费具有现代化设计趋势的WPF控件库
545 0