原創(chuàng)|其它|編輯:郝浩|2012-11-08 14:03:26.000|閱讀 578 次
概述:在DevExpress eXpressApp Framework中提供了DashboardView用于展示儀表盤dashboard。我們就來討論下其中級聯(lián)式儀表盤的連接機制和應用示例。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在DevExpress eXpressApp Framework中提供了DashboardView用于展示多個并排的視圖,也就是展示所謂的儀表盤dashboard。接下來,我們就來討論下其中級聯(lián)式儀表盤的連接機制和應用示例。
創(chuàng)建級聯(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; } }
然后擴展XAF的模型,如下代碼:
public void ExtendModelInterfaces(ModelInterfaceExtenders extenders) { extenders.Add<IModelDashboardViewItem, IModelDashboardViewItemEx>(); }
連接完成后,我們就可以使用模型編輯器(Model Editor)來創(chuàng)建和編輯dashboard中的各個視圖了。如下圖所示:
并且能夠?qū)崿F(xiàn)過濾功能:
接下來我們來看一些創(chuàng)建好的dashboard儀表盤的實際應用,比如說適用于科技業(yè)的三列式儀表盤。他使用了LayoutListEditor來完成部分過濾功能。
在選項卡式MDI環(huán)境下,便可實現(xiàn)這種dashboard的創(chuàng)建。
最后帶來完成這種三列式儀表盤的代碼,非常簡單:
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)載,但請務必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)