朝花夕拾——更新兩個開源項目


前言

  好久沒更新博客了,最近准備重拾博客,將更新恢復起來。

開源項目

  這些年零零散散做了很多項目,准備整理一下,將其開源,現整理了兩個項目:綁定引擎(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。

  老驥伏櫪,志在千里。

 

  大風吹過,總要留下些什么

 

本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM