In this lesson, you will learn how to provide several customized variants of the same View, and allow an end-user to choose a desired View variant at runtime. Variants can be applied to both List Views and Detail Views. In this lesson, the Contact List View will be used. Two variants of this List View will be constructed via the Module Editor. To switch between these View variants, the special ChangeVariant Action will be used. To add this Action, the ViewVariants module will be referenced in the application.

在本课中,您将学习如何提供同一视图的多个自定义变体,并允许最终用户在运行时选择所需的视图变体。变体可以同时应用于"列表视图"和"详细信息视图"。在本课中,将使用联系人列表视图。此列表视图的两个变体将通过模块编辑器构造。要在这些视图变体之间切换,将使用特殊的更改变量操作。要添加此操作,将在应用程序中引用"查看变体"模块。

Note 注意
Before proceeding, take a moment to review the following lessons.
在继续之前,请花点时间复习以下课程。
  • Inherit from the Business Class Library Class (XPO/EF)
  • 从商务舱库类 (XPO/EF) 继承
  • Change Field Layout and Visibility in a List View
  • 在列表视图中更改字段布局和可见性
  • Add the View Variants module to your MySolution.Module project. Find the Module.cs (Module.vb) file in the MySolution.Module project displayed in the Solution Explorer, and double-click this file. The Module Designer will be invoked.

In the Toolbox, navigate to the DX.19.2: XAF Modules tab. Drag the ViewVariantsModule item from this tab to the Designer's Required Modules section.

  • 将"查看变体"模块添加到 MySolution.模块项目中。在解决方案资源管理器中显示的 MySolution.module 项目中查找Module.cs (Module.vb) 文件,然后双击此文件。将调用模块设计器。

在工具箱中,导航到 DX.19.2:XAF 模块选项卡。将"视图Variants模块"项目从此选项卡拖动到"设计器的必需模块"部分。

  • Rebuild your solution so that the changes made in the Module Designer are loaded to the Application Model.
  • Invoke the Model Editor for the MySolution.Module project. Right-click the Views node and select Add... | ListView.

  • 重新生成解决方案,以便将模块设计器中所做的更改加载到应用程序模型。

  • 调用 MySolution.模块项目的模型编辑器。右键单击"查看"节点并选择"添加..." |Listview。

For the new node, set the Id property to "Contact_ListView_AllColumns" and the ModelClass property to "Contact".

对于新节点,将 Id 属性设置为"Contact_ListView_AllColumns",将 ModelClass 属性设置为"联系人"。

  • Right-click the newly created node and select Generate content. Columns will be generated using information on the specified class (BOModel | Contact node) and its ancestors. Leave these columns as is. This List View will represent the complete variant for the Contact List View.
  • 右键单击新创建的节点并选择"生成内容"。将使用指定类上的信息生成列(BOModel |联系节点)及其祖先。保持这些列不变。此列表视图将表示联系人列表视图的完整变体。

  • Right-click the Views node and select Add... | ListView. For the new node, set the Id property to "Contact_ListView_Varied" and the ModelClass property to "Contact". Do not generate content for the new node.

  • 右键单击"查看"节点并选择"添加..." |Listview。对于新节点,将 Id 属性设置为"Contact_ListView_Varied",将 ModelClass 属性设置为"联系人"。不要为新节点生成内容。

Expand the newly added Contact_ListView_Varied node, right-click the Variants child node and select Add... | Variant.

展开新添加的Contact_ListView_Varied节点,右键单击变体子节点并选择"添加..." |变异。

For the new node, set the View property to "Contact_ListView", and set the Id and Caption properties to "Few columns".

对于新节点,将 View 属性设置为"Contact_ListView",并将 Id 和标题属性设置为"很少列"。

  • Right-click the Variants node and select Add... | Variant. For the new node, set the View property to "Contact_ListView_AllColumns", and set the Id and Caption properties to "All columns".

  • 右键单击变体节点并选择"添加..." |变异。对于新节点,将 View 属性设置为"Contact_ListView_AllColumns",并将 Id 和标题属性设置为"所有列"。

  • Navigate to the NavigationItems | Items | Default | Items | Contact node. Its View property, specifying the View displayed when choosing the Contact navigation item, is "Contact_ListView" by default. Change it to "Contact_ListView_Varied".

  • 导航到导航项 |项目 |默认值 |项目 |联系节点。默认情况下,其 View 属性(指定选择"联系人"导航项时显示的视图)为"Contact_ListView"。将其更改为"Contact_ListView_Varied"。。

  • Run the WinForms or ASP.NET application. Select the Contact item in the navigation control. For the displayed Contact List View, the ChangeVariant Action will be activated. This Action's items represent the view variants specified in the Model Editor.

  • 运行 WinForms 或ASP.NET应用程序。选择导航控件中的"联系人"项。对于显示的联系人列表视图,将激活"更改变量"操作。此操作的项表示模型编辑器中指定的视图变体。

    Note 注意
    You can use the Index property to specify the sort order of variants in the ChangeVariant Action drop-down list. Additionally, you can set the Current property of the Variants node to specify the default variant.
    可以使用 Index 属性在"更改变体操作"下拉列表中指定变体的排序顺序。此外,还可以设置变体节点的"当前"属性以指定默认变体。
  • Optionally, you can add view variants to the navigation control. For this purpose, invoke the Model Editor and set the GenerateRelatedViewVariantsGroup property of the NavigationItems node to true.

  • 或者,您可以将视图变体添加到导航控件。为此,调用模型编辑器,并将导航项节点的"生成相关视图VariantsGroup"属性设置为 true。

    Note 注意
    Ensure that the IModelChoiceActionItemChildItemsDisplayStyle.ChildItemsDisplayStyle property of the current navigation group node is set to List (see Change Style of Navigation Items). Otherwise, the view variants will not be added to the navigation control in the WinForms application.

    确保 IModelChoiceActionItemItem 显示样式.子项显示当前导航组节点的样式属性设置为"列表"(请参阅更改导航项的样式)。否则,视图变体将不会添加到 WinForms 应用程序中的导航控件中。

As a result, the Contact navigation item will expose child items for each view variant.

因此,"联系人"导航项将公开每个视图变体的子项。

You can see the changes made in this lesson in the Model Editor invoked for the Model.DesignedDiffs.xafml file, located in the Main Demo | MainDemo.Module project. The MainDemo application is installed in %PUBLIC%\Documents\DevExpress Demos 19.2\Components\eXpressApp Framework\MainDemo by default. The ASP.NET version is available online at http://demos.devexpress.com/XAF/MainDemo/

您可以在本课中为模型调用的模型编辑器中所做的更改。主演示模块项目。主演示应用程序安装在%PUBLIC%\Documents\DevExpress Demos 19.2\Components\eXpressApp Framework\MainDemo by default. The ASP.NET version is available online at http://demos.devexpress.com/XAF/MainDemo/

.

Provide Several View Variants for End-Users 为最终用户提供多个视图变体的更多相关文章

  1. shader 变体variants

    https://blogs.unity3d.com/cn/2018/05/14/stripping-scriptable-shader-variants/ variants涉及的是build时间和da ...

  2. pure::variants — 产品线变体管理工具

    pure::variants 是德国 pure-systems 公司的产品,其目的是帮助企业实现对产品线的变体管理,提高企业项目资产的复用效率.pure::variants 的核心理念是运用产品线管理 ...

  3. JavaWeb网上商城的反思

    不知道从什么时候起,我爱上了写博客,对之前学得的只是进行反思.写了几天课程设计,代码量量8.9千左右. 然后下面文字是我在博客上复制过来的,说得很详细 MVC(Model View Controlle ...

  4. Table View Programming Guide for iOS---(一)---About Table Views in iOS Apps

    About Table Views in iOS Apps Table views are versatile user interface objects frequently found in i ...

  5. Make a List View Editable 使列表视图可编辑

    In this lesson, you will learn how to make a List View editable. For this purpose, the DemoTask List ...

  6. Change Field Layout and Visibility in a List View 在列表视图中更改字段布局和可见性

    This lesson will guide you through the steps needed to select columns displayed in the List View. Fo ...

  7. Meet User Expectations---满足用户的期待

    Back to App Design Meet User Expectations OS X incorporates the latest technologies for creating gre ...

  8. XAF导航系统介绍

    Navigation System 导航系统 10 min to read 阅读时长10分钟 This topic introduces the concept of the navigation s ...

  9. 设计模式-Java版-全-附代码-超生动实例

    阅读推荐:设计模式-简单篇 项目地址:https://gitee.com/zwtgit/gof23 学习网站推荐: https://refactoringguru.cn/design-patterns ...

随机推荐

  1. base64转图片、图片转base64、图片拼接、加水印(水印角度可设置)

    /** * @Description: 将base64编码字符串转换为图片 * @param imgStr * base64编码字符串 * @param path * 图片路径-具体到文件 * @re ...

  2. ios 10 更新 新体验

    1.使用手机登录开发者网站https://developer.apple.com/download/ 2.下载描述文件 3.安装描述文件,按照提示步骤操作 4.更新ios系统 下面的方法是连接电脑直接 ...

  3. 升级xcode10.0, 终端运行 运行报错:Print: Entry, “:CFBundleIdentifier”, Does Not Exist

    目录 问题原因 解决方法 终端解决 Print: Entry, ":CFBundleIdentifier", Does Not Exist 第一步: 去官网GitHub下载对应包就 ...

  4. mininet(一)实验环境搭建

    mininet(一)实验环境搭建 mininet(二)简单的路由实验 mininet(三)简单的NAT实验 最近学习(https://github.com/mininet/openflow-tutor ...

  5. Word表格斜线怎么弄?这里有三种方法很实用

    有些时候我们也会在Word文档中插入表格,因为这样可以准确的表达出文档中的内容.大家应该都知道Excel表格斜线怎么弄,那么Word表格斜线怎么弄吗?今天呢小编就帮大家总结了三种方法哦,有需要的小伙伴 ...

  6. python获取bing地图发布自己的TMS服务(一)下载瓦片

    部分结果 bing地图瓦片使用QuadKey作为命名方式. QuadKey简介 如何计算quadkey 在给定level下,把行号tileY和列号tileX转换为2进制,然后行列交叉存储,再转换为4进 ...

  7. POJ 1651 Mulitiplication Puzzle

    The multiplication puzzle is played with a row of cards, each containing a single positive integer. ...

  8. LNMP架构的搭建

    第9章 LNMP架构的搭建 9.1 什么是LNMP 9.1.1 LNMP的组成 L                linux N                nginx:实现静态的服务处理 M    ...

  9. art-template循环无法显示出数据

    art-template循环遍历无法显示数据原因 1.语法问题:循环语句导致的问题 2.插件问题: 用标准语法时循环数据如果引入第一个插件,会导致数据显示不出来只有引入第二个插件才可循环出数据 用原生 ...

  10. 【VUE】数组

    [VUE]常用函数 转载:https://www.cnblogs.com/yangchongxing/p/10637087.html 目录 ============================== ...