更新两个WPF开源项目
前言
好久没更新博客了,最近准备重拾博客,将更新恢复起来。
开源项目
这些年零零散散做了很多项目,准备整理一下,将其开源,现整理了两个项目:绑定引擎(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开源项目相关推荐
- WPF开源项目:AIStudio.Wpf.AClient
介绍 Wpf客户端,AIStudio.Wpf.AClient 软件架构 本框架使用Prism做MVVM,优点咱就不说了,主要了容器注入,消息和DI,比自己写省很多事.网上有很多标准的MVVM的使用方法 ...
- 使用git更新github上的开源项目
以前经常在github上下载一些开源项目,比如crtmpserver, nginx, apache traffic server, ffmpeg等, 一直不知道怎么同步更新到当前的最新源码. 我以前的 ...
- WPF开源项目Newbeecoder.UI库新功能演示
为了满足用户对Newbeecoder.UI库更多功能需求,在控件库中加入自定义按钮样式.输入框带图标.多选下拉框,日期时间和日历控件.不确定进度条.标准选项卡.绘制曲线图. 1.自定义样式按钮增加7种 ...
- WPF开源项目:WPF-ControlBase
仓库截图 仓库README很素,但看作者README贴的几篇博文介绍,你会喜欢上它的,废话不多说,上介绍目录: 动画封装 https://blog.csdn.net/u010975589/articl ...
- WPF 开源项目 【watcher】 守望者,一款监控,统计,分析你每天在自己电脑上究竟干了什么的软件...
时隔多年(两年),天天沉迷写PHP的我在连续加薪了逐渐发现自己不怎么写代码了. 甚至有一天我发现我连IDE 都没有打开,实在是太堕落了 为了及时悬崖勒马,回头是岸.为了鼓励自己专心写代码,我决定写一款 ...
- Modern UI for WPF 开源项目(5):定义logo
一个ModernWindow的菜单栏包含了一个自定义的窗体logo区域. 一个窗体Logo通过特定的ModernWindow.LogoData属性来设置.这个属性是一个几何学类型,支持Path.Dat ...
- 朝花夕拾——更新两个开源项目
前言 领券网 www.cps3.cn 好久没更新博客了,最近准备重拾博客,将更新恢复起来. 开源项目 这些年零零散散做了很多项目,准备整理一下,将其开源,现整理了两个项目:绑定引擎(BindingEn ...
- 聊聊 2020 的 dotnet 各大开源项目仓库的情况
现在是 2020.06.21 我来聊聊我所关注的 dotnet 的几个大开源项目的活跃以及定位情况.包括 WPF 和 WinForms 和 Xamarin 和 ASP.NET Core 和 Blazo ...
- GitHub 上都有哪些值得关注学习的 iOS 开源项目?
GitHub 上都有哪些值得关注学习的 iOS 开源项目?修改 如果仅按照 GitHub 月流行查看 Objective-C 项目的话有 ── Trending Objective-C reposit ...
最新文章
- android线性布局的实例
- Java 线程的 5 种状态
- java 线程之线程状态
- java方法的参数类型_Java 基础 14 方法的重载 与 方法参数类型详解
- [深度学习-NLP]Imdb数据集情感分析之模型对比(贝叶斯, LSTM, GRU, TextCNN, Transformer, BERT)
- SQL Server-聚焦IN VS EXISTS VS JOIN性能分析(十九)
- Flutter进阶—布局一个控件
- 澳大利亚超市巨头考虑设专门网站 方便代购买奶粉
- gradle指令linux守护,gradle之gradlew最全指令攻略
- 电子科学与技术毕业论文题目【452个】
- YUV格式的图片查看工具YUView 2.13
- Word怎么填服务器草稿位置,Word步骤制作目录的索引符号的操作
- pandas之数据合并
- PHP实现文件上传功能实例代码
- Multi-Task Video Captioning with Video and Entailment Generation阅读笔记
- 算法系列之二十:计算中国农历(一)
- SQL Server查询IP地址等信息
- Kindle 推送教程:教你用电子邮箱推送电子书(Kindle伴侣)
- Tomcat调优总结
- 【重要】条形码原理39码和EAN-13码
热门文章
- Generative Adversarial Learning Towards Fast Weakly Supervised Detection(CVPR2018)阅读笔记
- python之爬虫(四)之 Requests库的基本使用
- C++内联函数(inline function)
- Latex排版全解(转)
- Windows服务二:测试新建的服务、调试Windows服务
- AJAX,只是一种过渡技术吗?
- 迁移聊天记录到Teams
- 智能家居设备_您的智能家居设备正在监视您吗?
- android仿ios弹框_在“提示”框中:iOS外观(在Android上运行),Google Maps作为Time Machine,下载Wii游戏保存...
- Python_list部分功能介绍