前言

好久没更新博客了,最近准备重拾博客,将更新恢复起来。

开源项目

这些年零零散散做了很多项目,准备整理一下,将其开源,现整理了两个项目:绑定引擎(BindingEngine),插件式UI框架(GaleSong)。

BindingEngine

这是一个自定义的绑定引擎,项目的想法是将WPF的ViewModel用到各处:比如Winform、Xamarin、Web等等,

期望可以做到多个环境多个View共同绑定一份ViewModel,当ViewModel变化时,多个View可同步更新。

使用示例:

BindingEngine.SetPropertyBinding(this.winformTabControl, i => i.SelectedIndex,                     DataWarehouse.Instance, o => o.SelectedIndex).SetMode(BindMode.TwoWay).AttachTargetEvent("SelectedIndexChanged");这段代码的意思是:
1. 将winFormTabControl控件的SelectedIndex属性绑定至  DataWarehouse.Instance的SelectedIndex。
2. 类型是双向绑定(TwoWay)
3. 更新触发事件是SelectedIndexChanged。

目前支持的绑定有:

// 属性绑定
WinformBinding.SetPropertyBinding(this.trackBar1,                     i => i.Minimum, DataWarehouse.Instance,                     o => o.ControlViewModel1.SliderMinValue);// 集合绑定
WinformBinding.SetCollectionBinding(this.tabControl1, i => i.TabPages,                       DataWarehouse.Instance,                       o => o.ControlViewModel1.Persons, false).SetTargetCollectionHandler(new TabControlCollectionHanlder()).Activate();// 命令绑定
WinformBinding.SetCommandBinding(this.addBtn1, null,                     DataWarehouse.Instance,                     i => i.ControlViewModel1.AddCommand).AddEnableProperty<Button>(button => button.Enabled).AttachTargetEvent("Click");// 通知绑定
WinformBinding.SetNotifyBinding(……
// 方法绑定
WinformBinding.SetMethodBinding(……

运行示例,当点击左侧WinForm中的控件,右面WPF的控件可同步更新,反之亦然。

代码在Github上,地址参见项目地址:

https://github.com/zhouyongh/BindingEngine

GaleSong

一个插件式的WPF UI框架,是一个仿Visual Studio的UI框架,技术的原型来自于前文:

https://www.cnblogs.com/Zhouyongh/archive/2012/02/16/2353498.html

整理了下代码,上传至码云中,地址:

https://gitee.com/zhouyongh/gale-song

起了个名字叫GaleSong,中文名:大风歌,起这个名字时有些唏嘘,时间流逝得太快,一晃就成老兵了……T_T。

老骥伏枥,志在千里。

大风吹过,总要留下些什么

作者:周永恒

出处:http://www.cnblogs.com/Zhouyongh

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

更新两个WPF开源项目相关推荐

  1. WPF开源项目:AIStudio.Wpf.AClient

    介绍 Wpf客户端,AIStudio.Wpf.AClient 软件架构 本框架使用Prism做MVVM,优点咱就不说了,主要了容器注入,消息和DI,比自己写省很多事.网上有很多标准的MVVM的使用方法 ...

  2. 使用git更新github上的开源项目

    以前经常在github上下载一些开源项目,比如crtmpserver, nginx, apache traffic server, ffmpeg等, 一直不知道怎么同步更新到当前的最新源码. 我以前的 ...

  3. WPF开源项目Newbeecoder.UI库新功能演示

    为了满足用户对Newbeecoder.UI库更多功能需求,在控件库中加入自定义按钮样式.输入框带图标.多选下拉框,日期时间和日历控件.不确定进度条.标准选项卡.绘制曲线图. 1.自定义样式按钮增加7种 ...

  4. WPF开源项目:WPF-ControlBase

    仓库截图 仓库README很素,但看作者README贴的几篇博文介绍,你会喜欢上它的,废话不多说,上介绍目录: 动画封装 https://blog.csdn.net/u010975589/articl ...

  5. WPF 开源项目 【watcher】 守望者,一款监控,统计,分析你每天在自己电脑上究竟干了什么的软件...

    时隔多年(两年),天天沉迷写PHP的我在连续加薪了逐渐发现自己不怎么写代码了. 甚至有一天我发现我连IDE 都没有打开,实在是太堕落了 为了及时悬崖勒马,回头是岸.为了鼓励自己专心写代码,我决定写一款 ...

  6. Modern UI for WPF 开源项目(5):定义logo

    一个ModernWindow的菜单栏包含了一个自定义的窗体logo区域. 一个窗体Logo通过特定的ModernWindow.LogoData属性来设置.这个属性是一个几何学类型,支持Path.Dat ...

  7. 朝花夕拾——更新两个开源项目

    前言 领券网 www.cps3.cn 好久没更新博客了,最近准备重拾博客,将更新恢复起来. 开源项目 这些年零零散散做了很多项目,准备整理一下,将其开源,现整理了两个项目:绑定引擎(BindingEn ...

  8. 聊聊 2020 的 dotnet 各大开源项目仓库的情况

    现在是 2020.06.21 我来聊聊我所关注的 dotnet 的几个大开源项目的活跃以及定位情况.包括 WPF 和 WinForms 和 Xamarin 和 ASP.NET Core 和 Blazo ...

  9. GitHub 上都有哪些值得关注学习的 iOS 开源项目?

    GitHub 上都有哪些值得关注学习的 iOS 开源项目?修改 如果仅按照 GitHub 月流行查看 Objective-C 项目的话有 ── Trending Objective-C reposit ...

最新文章

  1. android线性布局的实例
  2. Java 线程的 5 种状态
  3. java 线程之线程状态
  4. java方法的参数类型_Java 基础 14 方法的重载 与 方法参数类型详解
  5. [深度学习-NLP]Imdb数据集情感分析之模型对比(贝叶斯, LSTM, GRU, TextCNN, Transformer, BERT)
  6. SQL Server-聚焦IN VS EXISTS VS JOIN性能分析(十九)
  7. Flutter进阶—布局一个控件
  8. 澳大利亚超市巨头考虑设专门网站 方便代购买奶粉
  9. gradle指令linux守护,gradle之gradlew最全指令攻略
  10. 电子科学与技术毕业论文题目【452个】
  11. YUV格式的图片查看工具YUView 2.13
  12. Word怎么填服务器草稿位置,Word步骤制作目录的索引符号的操作
  13. pandas之数据合并
  14. PHP实现文件上传功能实例代码
  15. Multi-Task Video Captioning with Video and Entailment Generation阅读笔记
  16. 算法系列之二十:计算中国农历(一)
  17. SQL Server查询IP地址等信息
  18. Kindle 推送教程:教你用电子邮箱推送电子书(Kindle伴侣)
  19. Tomcat调优总结
  20. 【重要】条形码原理39码和EAN-13码

热门文章

  1. Generative Adversarial Learning Towards Fast Weakly Supervised Detection(CVPR2018)阅读笔记
  2. python之爬虫(四)之 Requests库的基本使用
  3. C++内联函数(inline function)
  4. Latex排版全解(转)
  5. Windows服务二:测试新建的服务、调试Windows服务
  6. AJAX,只是一种过渡技术吗?
  7. 迁移聊天记录到Teams
  8. 智能家居设备_您的智能家居设备正在监视您吗?
  9. android仿ios弹框_在“提示”框中:iOS外观(在Android上运行),Google Maps作为Time Machine,下载Wii游戏保存...
  10. Python_list部分功能介绍