private Dashboard CreateDashboard() { DashboardExcelDataSource excelDataSource = CreateExcelDataSource(); Dashboard dBoard = new Dashboard(); dBoard.DataSources.Add(excelDataSource); dBoard.BeginUpdate(); // Create dashboard items. ChartDashboardItem chart = CreateChart(excelDataSource); dBoard.Items.Add(chart); DateFilterDashboardItem dateFilterItem = CreateDateFilterItem(excelDataSource); dBoard.Items.Add(dateFilterItem); DashboardItemGroup group = CreateGroup(); dBoard.Groups.Add(group); group.AddRange(dateFilterItem, chart); // Create layout tree. DashboardLayoutItem dateFilterLayoutItem = new DashboardLayoutItem(dateFilterItem, 30); DashboardLayoutItem chartLayoutItem = new DashboardLayoutItem(chart, 70); DashboardLayoutGroup groupLayoutItem = new DashboardLayoutGroup(group, 100); groupLayoutItem.ChildNodes.AddRange(dateFilterLayoutItem, chartLayoutItem); DashboardLayoutGroup rootGroup = new DashboardLayoutGroup(null, 100); rootGroup.ChildNodes.Add(groupLayoutItem); rootGroup.Orientation = DashboardLayoutGroupOrientation.Vertical; dBoard.LayoutRoot = rootGroup; dBoard.EndUpdate(); return(dBoard); }
private void btnModify_ItemClick(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e) { Dashboard dashboard = new Dashboard(); dashboard.LoadFromXDocument(dashboardControl.Dashboard.SaveToXDocument()); dashboard.BeginUpdate(); try { dashboard.Items["card1"].ParentContainer = dashboard.Items["list1"].ParentContainer; } catch (NullReferenceException) { }; dashboard.Items.ForEach(delegate(DashboardItem item) { if (item is PieDashboardItem) { ((PieDashboardItem)item).PieType = PieType.Donut; } }); dashboard.DataLoading += Dashboard_DataLoading; // The RebuildLayout call is required because the WPF viewer control contains a dashboard whose layout is already built. // If the layout is null (dashboardControl.Dashboard = null or dashboardControl.Dashboard.LayoutRoot = null), // the RebuildLayout is called automatically after assigning a dashboard. dashboard.RebuildLayout(); dashboard.EndUpdate(); dashboardControl.Dashboard = dashboard; }
private void btnCreate_ItemClick(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e) { Dashboard dashboard = new Dashboard(); DashboardObjectDataSource dataSource = new DashboardObjectDataSource(); dashboard.BeginUpdate(); dashboard.DataSources.Add(dataSource); dashboard.Items.Add(DashboardItemGenerator.GenerateCardItem(dataSource, "card1")); dashboard.Items.Add(DashboardItemGenerator.GenerateGridItem(dataSource, "grid1")); dashboard.Items.Add(DashboardItemGenerator.GeneratePieItem(dataSource, "pie1")); dashboard.Items.Add(DashboardItemGenerator.GenerateListBoxItem(dataSource, "list1")); TabContainerDashboardItem tabContainer = new TabContainerDashboardItem(); tabContainer.TabPages.Add(new DashboardTabPage() { Name = "Tab Page One", ComponentName = "page1" }); tabContainer.TabPages["page1"].AddRange(dashboard.Items["grid1"], dashboard.Items["pie1"]); DashboardTabPage secondTabPage = tabContainer.CreateTabPage(); secondTabPage.Name = "Tab Page Two"; secondTabPage.Add(dashboard.Items["list1"]); secondTabPage.ShowItemAsTabPage = true; dashboard.Items.Add(tabContainer); dashboard.DataLoading += Dashboard_DataLoading; dashboard.EndUpdate(); dashboardControl.Dashboard = dashboard; }
private void ChangeLayout(DashboardToolbarItemClickEventArgs args) { Dashboard dashboard = new Dashboard(); dashboard.LoadFromXml(@"Data\LayoutUnordered.xml"); dashboard.BeginUpdate(); // Switch off the DateFilter item's AutoHeight arrangement mode so that the DateFilter layout does not ignore its layout weight. ((DateFilterDashboardItem)(dashboard.Items["dateFilterDashboardItem1"])).ArrangementMode = DateFilterArrangementMode.Horizontal; // Hide captions. dashboard.Items.ForEach(item => item.ShowCaption = false); dashboard.Groups.ForEach(item => item.ShowCaption = false); // Create layout items for the DateFilter and Chart dashboard items. DashboardLayoutItem dateFilterLayoutItem = new DashboardLayoutItem(dashboard.Items["dateFilterDashboardItem1"], 13); DashboardLayoutItem chartLayoutItem = new DashboardLayoutItem(dashboard.Items["chartDashboardItem1"], 87); // Create a layout item for the dashboard Group item. DashboardLayoutGroup groupLayoutItem = new DashboardLayoutGroup() { Orientation = DashboardLayoutGroupOrientation.Vertical, DashboardItem = dashboard.Groups["dashboardItemGroup1"], Weight = 70 }; // Connect layout items in the layout tree. groupLayoutItem.ChildNodes.AddRange(dateFilterLayoutItem, chartLayoutItem); // Create a Grid layout item. DashboardLayoutItem gridLayoutItem = new DashboardLayoutItem(dashboard.Items["gridDashboardItem1"], 30); // Create a group layout item to organize the Grid layout item and a Dashboard Group layout item. DashboardLayoutGroup layoutGroup = new DashboardLayoutGroup(DashboardLayoutGroupOrientation.Horizontal, 85); // Connect layout items in the layout tree. layoutGroup.ChildNodes.AddRange(gridLayoutItem, groupLayoutItem); // Create a RangeFilter layout item. DashboardLayoutItem rangeFilterLayoutItem = new DashboardLayoutItem(dashboard.Items["rangeFilterDashboardItem1"], 15); // Create a root layout group. Its DashboardItem property is null. DashboardLayoutGroup rootGroup = new DashboardLayoutGroup() { Orientation = DashboardLayoutGroupOrientation.Vertical, Weight = 100, DashboardItem = null }; // Connect layout items in the layout tree. rootGroup.ChildNodes.AddRange(layoutGroup, rangeFilterLayoutItem); // The layout treee is built. Set the dashboard's root layout node to finalize the layout. dashboard.LayoutRoot = rootGroup; dashboard.EndUpdate(); dashboardViewer1.Dashboard = dashboard; }