XAF之向DashboardView中动态添加ViewItem

XAF状态机的使用.docx XAF 状态机工作流 使用教程和详细注意事项,东西不错 立即下载

         在Application Model中添加 DashboardView的ViewItem是很方便的,但有时候我们也需要在代码中动态地添加ViewItem。

在下面的示例中,MyDashboardView含有两个ListView(图1),点击一个Action新加一个ListView(图2)。


图1


图2

//simpleAction1_Execute中的代码可放在ViewController的任意位置。

private void simpleAction1_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            

            string dashBoardId = "MyDashboardView";
            if (View.Id == dashBoardId)
            {
                string viewId = "MyObject_ListView";
//在DashboardView下Items中添加节点,节点类型为IModelDashboardViewItem
                IModelDashboardViewItem viewItem = ((IModelDashboardView)View.Model).Items.AddNode<IModelDashboardViewItem>();
//找到MyObject_ListView,并为该ViewItem的View属性赋值
                viewItem.View = Application.FindModelView(viewId);
//定位到Layout的Main布局,若还未创建则创建它
                IModelLayoutGroup mainLayoutGroup = ((IModelDashboardView)View.Model).Layout[ModelDetailViewLayoutNodesGenerator.MainLayoutGroupName] as IModelLayoutGroup;
                if (mainLayoutGroup == null)
                    mainLayoutGroup = ((IModelDashboardView)View.Model).Layout.AddNode<IModelLayoutGroup>(ModelDetailViewLayoutNodesGenerator.MainLayoutGroupName);
                IModelLayoutItem layoutItem = mainLayoutGroup[viewId] as IModelLayoutItem;
                if (layoutItem == null)
                {
//将新建的ViewItem添加到布局
                    layoutItem = mainLayoutGroup.AddNode<IModelLayoutItem>(viewId);
                    layoutItem.ViewItem = viewItem;
                    View.LoadModel();
                }
            }
}


此外,动态删除ViewItem也是可以的,这在我前两篇博客中已有说明。这里汇合附在最后(这些代码都在ViewController中):

删除方法1:真实地删除某ViewItem

DashboardView dv = View as DashboardView;
            foreach (ViewItem vi in dv.Items)
            {
                if (vi.Id == "yyyyyy")
                {
                    dv.RemoveItem(vi.Id);
                }
            }
删除方法2:并不真实地删除ViewItem,只是隐藏该ViewItem

DashboardView dv = View as DashboardView;
            DevExpress.XtraLayout.LayoutControl layoutControl =
               ((DevExpress.XtraLayout.LayoutControl)dv.Control);
            foreach (object obj in layoutControl.Items)
            {
                if (obj is DevExpress.XtraLayout.LayoutControlItem)
                {
                    DevExpress.XtraLayout.LayoutControlItem layoutControlItem =
                       (DevExpress.XtraLayout.LayoutControlItem)obj;
                    //layoutControlItem.Name由ViewItem的ID加括号和括号内的数字构成
                    //如:ViewItem的Id是‘myId’,可能其layoutControlItem.Name为‘myId(3)'
                    if (layoutControlItem.Name.StartsWith("myViewItemId" + "("))
                        layoutControlItem.HideToCustomization();
                }
            }



环境配置 |Jupyter lab/Jupyter Notebook 安装与设置 ipynb使用Jupyterlab/Jupyter Notebook 来编写程序时的文件,在使用时,可以现转换为标准的.py的python文件。 阅读详情

相关推荐

基恩士数字光纤放大器

在2路输出类型上此为通道开关,并未配备0路类型;设置已搞不清楚不知道怎么办时···完成初始化后,模块重新显示当前值。①无工件时短按[SET]①有工件时短按[SET]各部位的名称和基本操作。可以手动微调设置值。

大小曲奇的博客 1万+

一分钟创建devexpress DASHBOARD仪表盘

1、添加窗体,将dashboardviewer容器拖入窗体DOCK=FILL,全屏美观些 2、点击dashboardviewer容器右上角的小三角图标,弹出列表选项,点击CREATE dashboard新建仪表盘 3、vs会新增dashboard1.cs文件进行弹出设计窗体,选择Datasource数据源设置,省略… 4、将子控件拖入dashboard1仪表盘内,布局完毕 ...

xiaruilin的专栏 3431

NI USB-8506 LIN通讯配置全攻略:从驱动安装到NI MAX硬件检测

本文详细介绍了NI USB-8506设备的LIN通讯配置全流程,从驱动安装到NI MAX硬件检测。重点讲解了NI-CAN和NI-XNET驱动的安装避坑技巧,以及LIN通讯参数配置的实战经验,帮助用户快速掌握车载LIN总线通讯技术,提升工作效率。

weixin_29171087的博客 600

XAF之Dashboard

Dashbord View是一种较特殊的View,它可以在一个Frame里紧密地显示多个View。          DashboardView中的每个View由一个DashboardViewItem表示。在Application Model中DashboardViewItem节点下的IModelDashboardViewItem.View属性对应了该DashboradViewItem。

压碎起重机 1919

从打印攻击到视频重放:手把手用OULU-NPU训练你的第一个活体检测模型

本文详细介绍了如何使用OULU-NPU数据集训练活体检测模型,以应对打印攻击和视频重放等安全威胁。通过PyTorch框架,从环境准备、数据加载、预处理到模型架构设计,手把手教你构建一个高效的双流网络,结合CNN和LSTM技术,提升模型在多种攻击场景下的检测准确率。

weixin_29092031的博客 385

matlab 求解多项式的根 四种方法

matlab 求解多项式的根 四种方法 方法一 %多项式求根函数roots p=[1,-3,1];%建立多项式系数向量p x=roots(p)%求多项式的根 x=-5:0.1:5;%步长为0.1 y1=x.*x-3*x+1;%构建一个函数 y2=zeros(size(x));%产生一个与x同大小的零向量 plot(x,y1,x,y2); 方法二 %利用函数fzero f=@(x)x*x-3*x+1; x1=fzero(f,0.5) x2=fzero(f,2.5) 方法三 %利用f

weixin_57038822的博客 1万+

Jenkins 视图管理Dashboard View(学习笔记十七)

1.目标 创建的作业多了,在一个视图中展示多有不便。因此需要使用 Dashboard View 将作业按照后缀进行分类展示。 如下图,可以按照后缀添加CODE,TEST和OTHER视图。 2.环境说明 Dashboard View 插件 3.配置 (1)点击【All】后面的『+...

weixin_34414650的博客 1056

kali破解WIFI密码

今天我们来学习一下通过kali和一个好的字典来破解WIFI密码。 声明:此教程仅供学习研究使用,严禁使用此技术进行非法行为 首先我们需要一个具有监听功能的无线网卡(这里我给大家推荐:rt3070) 本章实验通过虚拟机VMware进行: 先通过services.msc来打开VMware USB Arbitration Service 插上监听网卡,连接USB到虚...

#的博客 5810

【重大更新】DevExpress v18.1新版亮点——Analytics Dashboard篇(一)

用户界面套包DevExpress v18.1日前正式发布,本站将以连载的形式为大家介绍各版本新增内容。本文将介绍了DevExpress Analytics Dashboard v18.1 的新功能,快来下载试用新版本!点击下载&gt;&gt; WPF Dashboard Viewer 全新的Dashboard Viewer for WPF正式发布,它具有与WinForms版本相同的可视化功能。...

需要界面开发、IDE工具研发中文教程资料的小伙伴,记得私信我~ 754

别再手动算考勤了!教你用Python+企业微信API自动生成月度报表

本文介绍如何利用Python和企业微信API构建自动化考勤分析系统,实现从数据获取到可视化报表生成的全流程自动化。通过企业微信打卡接口获取数据,使用Pandas进行高效清洗和分析,并生成Excel和HTML格式的报表,大幅提升考勤统计效率。系统支持智能判定考勤状态,如迟到、早退等,并可通过定时任务实现月度自动化运行。

weixin_27875131的博客 290

XDMA流传输模式

XDMA 流传输模式(Streaming DMA)​ 是 Xilinx FPGA 通过 PCIe 与主机进行 ​实时流式数据传输 的核心机制,

浩瀚之水的专栏 3435

应用界面开发小技巧——在XAF视图中显示dxChart小部件

下载DevExpress v20.1完整版 场景: 有必要显示一个带有很多点的图表控件,内置Charts module可一次在同一屏幕上绘制所有点,这对于最终用户可能不方便。为了获得更好的可用性,可以实现实时缩放和滚动功能。 DevExtreme库中的dxChart小部件非常适合这种情况,本文将为大家演示如何在XAF应用程序中利用此小部件。 实现步骤: 1、注册客户端库 XAF应用程序知识库中How to: Use DevExtreme Widgets in an XAF Applicat.

需要界面开发、IDE工具研发中文教程资料的小伙伴,记得私信我~ 351

Python对象的基本组成和内存示意图及引用的本质

在Python中,变量也称为:对象的引用(reference)。变量存储的就是对象的地址。变量不需要显式声明类型。根据变量引用的对象,Python解释器自动确定数据类型。一个内存块,拥有特定的值,支持特定类型的相关操作。变量位于:栈内存(压栈出栈等细节,后续再介绍)。⚠️Python是动态类型语言。变量通过地址引用了“对象”。

Calor13的博客 557

XAF之DashboardViewItem管理

前面我已经写过一篇关于向Dashboard中动态添加ViewItem文章,随着项目的进入,需要在dashboard操作更多的ViewItem,所以专门添加了一个dashboard布局管理类DashboardViewManager,该类主要用途是控制某个Group下ViewItem的显示。           比如,我的Dashboard的结构如下图所示:             一直要

压碎起重机 1684

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

DevExpress WPF使用教程:创建WPF Dashboard Viewer应用程序

下载DevExpress v20.2完整版 DevExpress技术交流群3:700924826欢迎一起进群讨论 DevExpress WPFSubscription拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress W...

需要界面开发、IDE工具研发中文教程资料的小伙伴,记得私信我~ 660

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

XAF之怎样获取ListView所有的筛选条件

在XAF中,有很多种附加过滤条件的方法,列举如下: 1.在Application Model的ListView的Criteria节点内写入筛选信息,如图1所示。该过滤条件会以"ListViewCriteria"为键名放入ListVIew.CollectionSource.Criteria字典中。 图1 2.在Application Model的ListView的Filters节点下创

压碎起重机 2015

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

自定义仪表盘MyDashBoardView 实时修改最值和当前值

1.写在前面   项目中做了个仪表盘效果,需要支持在java中实时更改最大值以及当前值,效果图如下 同时我这里处理了下,让它可以支持float类型的数据 2.实现   首先这个自定义view没有涉及事件分发和动画,纯粹全部都是draw,所以是个练手的好机会。对这个view分析下,可以分为如下几部分 我们需要做的就是按部就班的全部画出来即可。 2.1 外弧   我这里方法可能一别

guozhaohui628 2432

android 自定义View 仪表盘 DashboardView 的实现

有天上班,老板突然扔给我一张图,说:这个东西能不能做一下。我说应该可以。然后老板那就没有下文了,我想既然问了,那我就抽空做一下。当我做出来的时候去找老板,我说上次你给我发的那个图,我已经做出来了,您要不要看一下。老板说,不用了,不需要了。不需要了。。 不需要了 。。 不需要了!!听到这句话我的内心是几乎是崩溃的,哭哭。好吧,既然这样,那么就开源出来吧

博客 1万+

如何在XAF中显示自定义窗体和控件

https://www.devexpress.com/Support/Center/Example/Details/E911

weixin_34010949的博客 490

XAF之自定义Function Criteria Operator

实现自己的Function CriteriaOperator(下面用FCO代替)需要实现DevExpress.Data.Filtering.ICustomFunctionOperator接口,并实现其3个方法(属性): string Name { get; }   :指定自定义FCO的名称; object Evaluate (params object[] perands) :指定自定义FCO

压碎起重机 1519

Devexpress XAF框架——基本知识及安装软件介绍

Devexpress XAF框架——基本知识XAF优点一、一次编码,多种平台同时使用通过一次代码编码写,可以同时产生四种项目:1,Web项目(b/s)2,win项目(c/s)3,平板电脑(beta)4,移动端(beta)其中web/win是两个项目,3,4都是web项目,只是使用了不同的适应界面可以在移动设备和平板电脑上进行浏览操作等。在Sliverlight刚出现的一段时间内,XAF曾试图支持S...

Ysiqiqi的博客 6749

.NET应用程序UI控件DevExpress XAF v21.2 - 全新升级BI仪表板模块

DevExpress XAF v21.2已发布,新版本增强了BI仪表盘模块、增加了功能测试等,欢迎下载最新版体验!

需要界面开发、IDE工具研发中文教程资料的小伙伴,记得私信我~ 520

XAF之刷新View的方法

有时,我们可能需要刷新View的显示内容,比如后台线程可能一直在向数据库里放数据,而XAF的显示对应数据库表的View是不会自动刷新的,除非手动点击刷新。这时可以在代码里控制定时刷新,刷新的方法有两种: 一.使用RefreshAction RefreshAction属于RefreshController,所以,在ViewController中得到该Controller即可 protect

压碎起重机 2045

XAF-列表视图数据访问模式

本主题介绍有关列表视图如何提供数据访问的几种方式。请注意,选择正确的方式对于实现XAF应用程序的最佳性能至关重要。 数据访问模式概述 在模型编辑器中,通过视图-><ListView>节点找到IModelListView.DataAccessMode属性,指定显示的对象集合是如何被访问。可用值- Client,Server,InstantFeedba...

weixin_30387423的博客 443

XAF之常用的CriteriaOperator

基于图1的XPO关系,列举常用的CriteriaOperator。 图1  示例XPO类 1.BetweenOperator 范围操作符如:100 年龄在20到30岁之间 Criteria.Parse("[Age] Between(20, 30)") //后略,直接给出字符串 new BetweenOperator("Age", 20, 30); Id在Age2和Age之

压碎起重机 3521
上一篇: XAF之不在controller上下文中创建View
下一篇: XAF之操作ApplicationModel的有用代码片段
qjpcpu
博客等级 码龄15年 59粉丝 106原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值