更新两个WPF开源项目
生活随笔
收集整理的這篇文章主要介紹了
更新两个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/BindingEngineGaleSong
一個插件式的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开源项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微软加入字节码联盟,进一步开发支持Bla
- 下一篇: 深入探究ASP.NET Core读取Re