您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“怎么用C#的CM框架實(shí)現(xiàn)多頁面管理”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
后臺(tái)代碼:①定義集合并添加數(shù)據(jù):
public IViewModel ActiveWindowView { get; set; } public ObservableCollection<string> ListBoxItems { get; set; } public string SelectedItem { get; set; }
ListBoxItems = new ObservableCollection<string>() { }; ListBoxItems.Add("ShellView"); ListBoxItems.Add("EventAggregatorView"); ListBoxItems.Add("ConductorView"); ListBoxItems.Add("MatchTemplateView"); ListBoxItems.Add("IndicatorLightView"); ListBoxItems.Add("MemorandumView"); ListBoxItems.Add("FTPTestView");
②listbox選擇改變后切換頁面:
public void ListBoxItems_SelectionChanged() { switch(SelectedItem) { case "ShellView": ActiveWindowView = new ShellViewModel();break; case "EventAggregatorView": ActiveWindowView = EventAggregatorViewModel.Instance; break; case "ConductorView": ActiveWindowView = new ConductorViewModel(); break; case "MatchTemplateView": ActiveWindowView = new MatchTemplateViewModel(); break; case "IndicatorLightView": ActiveWindowView = new IndicatorLightViewModel(); break; case "MemorandumView": ActiveWindowView = IoC.Get<MemorandumViewModel>(); break; case "FTPTestView": ActiveWindowView = new FTPTestViewModel(new FTPConfig()); break; default:break; } }
?、矍芭_(tái)綁定:
<ListBox Name="ListBoxItems" Grid.Column="0" SelectedItem="{Binding SelectedItem}" Margin="2" cal:Message.Attach="[Event SelectionChanged] = [Action ListBoxItems_SelectionChanged]"/> <ContentControl Name="ActiveWindowView"/>
① 后臺(tái)代碼:首先是需要繼承Conductor<IViewModel>.Collection.OneActive這樣才能使用這個(gè)類下面的方法和屬性,其次是構(gòu)造函數(shù)需要添加接收的接口IEnumerable<T>,這樣改造完代碼如下:
public MainWindowViewModel(IEnumerable<IViewModel> modules) { Items.AddRange(modules); ActivateItem(Items.FirstOrDefault(vm => vm.GetType() ==typeof(IndicatorLightViewModel))); }
如果不考慮首次激活的頁面那核心代碼就只有一句:
Items.AddRange(modules);
②前臺(tái)代碼:
<ListBox Name="Items" Grid.Column="0" Margin="2" DisplayMemberPath="DisplayName"/> <ContentControl Name="ActiveItem"/>
這樣前后臺(tái)就設(shè)置完事了,繼承了一個(gè)框架的多屏幕管理類,使得前后臺(tái)代碼大幅度精簡,功能上也沒打折扣,準(zhǔn)確說是更強(qiáng)大了,這就是CM框架的優(yōu)勢(shì)所在。
“怎么用C#的CM框架實(shí)現(xiàn)多頁面管理”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。