前言
好久沒更新博客了,最近準備重拾博客,將更新恢復起來,
開源專案
這些年零零散散做了很多專案,準備整理一下,將其開源,現整理了兩個專案:系結引擎(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,
老驥伏櫪,志在千里,
大風吹過,總要留下些什么
作者:周永恒
出處:http://www.cnblogs.com/Zhouyongh
本文著作權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/282684.html
標籤:.NET技术
下一篇:關于一個正式運算式的書寫(急需)
