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

前言

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

开源项目

这些年零零散散做了很多项目,准备整理一下,将其开源,现整理了两个项目:绑定引擎(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上,地址参见项目地址

GaleSong

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

  

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

 

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

老骥伏枥,志在千里。

 

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

 

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

posted @   周永恒  阅读(2219)  评论(4编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示