原創(chuàng)|其它|編輯:郝浩|2012-11-08 14:03:26.000|閱讀 578 次
概述:在DevExpress eXpressApp Framework中提供了DashboardView用于展示儀表盤dashboard。我們就來討論下其中級(jí)聯(lián)式儀表盤的連接機(jī)制和應(yīng)用示例。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在DevExpress eXpressApp Framework中提供了DashboardView用于展示多個(gè)并排的視圖,也就是展示所謂的儀表盤dashboard。接下來,我們就來討論下其中級(jí)聯(lián)式儀表盤的連接機(jī)制和應(yīng)用示例。
創(chuàng)建級(jí)聯(lián)式儀表盤,首先要連接ListViews,用以下API便可完成。
public interface IModelDashboardViewFilter : IModelNode { [DataSourceProperty("FilteredColumns")] IModelColumn FilteredColumn { get; set; } [DataSourceProperty("DataSourceViews")] IModelListView DataSourceView { get; set; } } [ModelAbstractClass] public interface IModelDashboardViewItemEx : IModelDashboardViewItem { IModelDashboardViewFilter Filter { get; } }
然后擴(kuò)展XAF的模型,如下代碼:
public void ExtendModelInterfaces(ModelInterfaceExtenders extenders) { extenders.Add<IModelDashboardViewItem, IModelDashboardViewItemEx>(); }
連接完成后,我們就可以使用模型編輯器(Model Editor)來創(chuàng)建和編輯dashboard中的各個(gè)視圖了。如下圖所示:
并且能夠?qū)崿F(xiàn)過濾功能:
接下來我們來看一些創(chuàng)建好的dashboard儀表盤的實(shí)際應(yīng)用,比如說適用于科技業(yè)的三列式儀表盤。他使用了LayoutListEditor來完成部分過濾功能。
在選項(xiàng)卡式MDI環(huán)境下,便可實(shí)現(xiàn)這種dashboard的創(chuàng)建。
最后帶來完成這種三列式儀表盤的代碼,非常簡(jiǎn)單:
protected override void OnViewControlsCreated() { base.OnViewControlsCreated(); foreach (var result in View.Items.OfType<DashboardViewItem>()) { var frame1 = result.Frame; if (frame1 != null && frame1.View is ListView) { var listView = ((ListView)frame1.View); DashboardViewItem result1 = result; listView.SelectionChanged += (sender, args) => OnSelectionChanged(new SelectionChangedArgs(listView, result1)); } } void OnSelectionChanged(SelectionChangedArgs selectionChangedArgs) { var dataSourceListView = DataSourceListView((IModelListView)selectionChangedArgs.DashboardViewItemModel.View); if (dataSourceListView != null) { var dashboardViewItems = View.Items.OfType<DashboardViewItem>(); foreach (var dashboardViewItem in dashboardViewItems) { var modelDashboardViewItemEx = (IModelDashboardViewItemEx)dashboardViewItem.GetModel(View); FilteredListView(dataSourceListView, dashboardViewItem, modelDashboardViewItemEx);
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)