wpf devexpress如何使用AccordionControl

添加一个数据模型

AccordionControl可以被束缚到任何实现IEnumerable接口的对象或者它的派生类(例如IList,ICollection)

如下代码例子示范了一个简单的数据模型使用:

using System.Collections.Generic;namespace DxAccordionGettingStarted {public class Employee {public int ID { get; set; }public string Name { get; set; }public string Position { get; set; }public string Department { get; set; }public override string ToString() {return Name;}}public static class Staff {public static List<Employee> GetStaff() {List<Employee> employees = new List<Employee>();employees.Add(new Employee() { ID = 1, Name = "Gregory S. Price", Department = "Management", Position = "President" });employees.Add(new Employee() { ID = 2, Name = "Irma R. Marshall", Department = "Marketing", Position = "Vice President" });employees.Add(new Employee() { ID = 3, Name = "John C. Powell", Department = "Operations", Position = "Vice President" });employees.Add(new Employee() { ID = 4, Name = "Christian P. Laclair", Department = "Production", Position = "Vice President" });employees.Add(new Employee() { ID = 5, Name = "Karen J. Kelly", Department = "Finance", Position = "Vice President" });employees.Add(new Employee() { ID = 6, Name = "Brian C. Cowling", Department = "Marketing", Position = "Manager" });employees.Add(new Employee() { ID = 7, Name = "Thomas C. Dawson", Department = "Marketing", Position = "Manager" });employees.Add(new Employee() { ID = 8, Name = "Angel M. Wilson", Department = "Marketing", Position = "Manager" });employees.Add(new Employee() { ID = 9, Name = "Bryan R. Henderson", Department = "Marketing", Position = "Manager" });employees.Add(new Employee() { ID = 10, Name = "Harold S. Brandes", Department = "Operations", Position = "Manager" });employees.Add(new Employee() { ID = 11, Name = "Michael S. Blevins", Department = "Operations", Position = "Manager" });employees.Add(new Employee() { ID = 12, Name = "Jan K. Sisk", Department = "Operations", Position = "Manager" });employees.Add(new Employee() { ID = 13, Name = "Sidney L. Holder", Department = "Operations", Position = "Manager" });employees.Add(new Employee() { ID = 14, Name = "James L. Kelsey", Department = "Production", Position = "Manager" });employees.Add(new Employee() { ID = 15, Name = "Howard M. Carpenter", Department = "Production", Position = "Manager" });employees.Add(new Employee() { ID = 16, Name = "Jennifer T. Tapia", Department = "Production", Position = "Manager" });employees.Add(new Employee() { ID = 17, Name = "Judith P. Underhill", Department = "Finance", Position = "Manager" });employees.Add(new Employee() { ID = 18, Name = "Russell E. Belton", Department = "Finance", Position = "Manager" });return employees;}}
}

添加视图模型

创建视图模型从数据模型中调用数据:

using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;namespace DxAccordionGettingStarted {public class MainWindowViewModel {public MainWindowViewModel() {var employeeDepartments = Staff.GetStaff().GroupBy(x => x.Department).Select(x => new EmployeeDepartment(x.Key, x.ToArray()));EmployeeDepartments = new ObservableCollection<EmployeeDepartment>(employeeDepartments.ToArray());}public ObservableCollection<EmployeeDepartment> EmployeeDepartments { get; set; }}public class EmployeeDepartment {public string Name { get; set; }public ObservableCollection<Employee> Employees { get; set; }public EmployeeDepartment(string name, IEnumerable<Employee> employees) {Name = name;Employees = new ObservableCollection<Employee>(employees);}public override string ToString() {return Name;}}
}

生成解决方案。调用MainWindow Quick Actions和定义窗口数据上下文作为如下图片显示:

添加AccordionControl到视图

拖动AccordionControl从DX.23.1:Navigation & Layout工具箱页面,拖动到MainWindow:

右键点击控件选择Layout | Reset All去允许AccordionControl填充整个窗口:

绑定AccordionControl到数据

调用AccordinControl Quick Action和定义ItemsSource字段:

定义ChildrenPath字段指定路径到属性包含一个accordion item子对象:

代码例子如下示范了生成的代码:

<Window  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:dxa="http://schemas.devexpress.com/winfx/2008/xaml/accordion" xmlns:local="clr-namespace:DxAccordionGettingStarted" x:Class="DxAccordionGettingStarted.MainWindow" Title="MainWindow" Height="350" Width="525"><Window.DataContext><local:MainWindowViewModel/></Window.DataContext><Grid><dxa:AccordionControl ItemsSource="{Binding EmployeeDepartments}" ChildrenPath="Employees"/></Grid>
</Window>

获得结果

运行解决方案显示如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/277674.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

说说限流处理

对于限流&#xff0c;从一个完整的请求链路上来看的话&#xff0c;可以分几块&#xff0c;有nginx接入层网关的限流&#xff0c;微服务网关gateway的限流&#xff0c;在业务层我们也可以实现自己的限流逻辑&#xff0c;Redission和Google的Guava包本身也提供了一些限流工具。 而…

分类信息网商业运营版源码系统:适合各类行业分类站点建站 带安装部署教程

随着互联网的快速发展&#xff0c;信息分类网站在各个行业中得到了广泛应用。为了满足不同行业的需求&#xff0c;罗峰给大家分享一款适合各类行业分类站点建站的商业运营版源码系统。该系统旨在提供一套完整的解决方案&#xff0c;帮助用户快速搭建自己的分类信息网站&#xf…

[算法总结] 十大排序算法

[算法总结] 十大排序算法 简介&#xff1a; 本文首发于我的个人博客&#xff1a;尾尾部落排序算法是最经典的算法知识。因为其实现代码短&#xff0c;应该广&#xff0c;在面试中经常会问到排序算法及其相关的问题。一般在面试中最常考的是快速排序和归并排序等基本的排序算法…

LVS负载均衡集群——NAT地址转换模式与DR直接路由模式

1. LVS集群基本介绍 Cluster&#xff0c;集群、群集。 由多台主机构成&#xff0c;但对外只表现为一个整体&#xff0c;只提供一个访问入口&#xff08;域名或IP地址&#xff09;&#xff0c;相当于一台大型计算机。 2. 集群的类型 2.1 负载均衡群集&#xff08;Load Balanc…

静态HTTP应用在移动设备上的优化

随着移动设备的普及&#xff0c;越来越多的用户通过手机、平板等设备访问Web应用。对于静态HTTP应用来说&#xff0c;如何在移动设备上提供更好的用户体验和性能是一个值得关注的问题。本文将介绍一些静态HTTP应用在移动设备上的优化技巧。 一、响应式设计 响应式设计是一种让…

Leetcode 455 分发饼干

题意理解&#xff1a; 小孩的饭量&#xff1a; [1,2,7,10] 饼的大小&#xff1a; [1,3,5,7] 当饼的大小>小孩饭量时&#xff0c;小孩就能够吃饱。 求如何分配饼让更多的小孩子能够吃饱。 解题思路&#xff1a; 两种思路&#xff1a; 先把胃口小的孩子用较小的饼来喂饱—…

基于JavaWeb+SSM+Vue微信小程序的移动学习平台系统的设计和实现

基于JavaWebSSMVue微信小程序的移动学习平台系统的设计和实现 源码获取入口Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 Lun文目录 第1章 绪论 1 1.1 课题背景 1 1.2 课题意义 1 1.3 研究内容 2 第2章 开发环…

深度学习环境配置

一、Anaconda安装 下载&#xff1a;从清华大学开源软件镜像下载 镜像网址 出现base即为安装成功&#xff1a; 检查显卡的驱动是否正确安装&#xff1a; &#xff08;GPU可以显示出名称&#xff09; GPU0是集显集成显卡是主板自带的显卡。 GPU1是独显即独立显卡&#xff0c…

计算机网络:物理层(三种数据交换方式)

今天又学到一个知识&#xff0c;加油&#xff01; 目录 前言 一、电路交换 二、报文交换 三、分组交换 1、数据报方式 2、虚电路方式 3、比较 总结 前言 为什么要进行数据交换&#xff1f; 一、电路交换 电路交换原理&#xff1a;在数据传输期间&#xff0c;源结点与…

PR模板,漂亮的文字帖子视频模板,方形标题PR项目工程文件下载

Premiere Pro模板&#xff0c;具有6个方形设计PR视频帖子标题文字PR项目工程文件。使用附带的颜色控制器调整和修改颜色&#xff0c;与您自己的品牌相匹配。使用这些效果来增强视频画面。包括视频教程。 适用软件&#xff1a;PR2019 | 分辨率&#xff1a;10801080&#xff08;方…

php入门、安装wampserver教程

php声称是全世界最好的语言&#xff0c;今天这篇文章就带大家入门学习php&#xff0c;php和python、javasript一样&#xff0c;是一种弱类型的脚本语言。 一、php开发环境搭建 作为初学者&#xff0c;学习php建议安装wampserver&#xff0c;wampserver是包含了apache、php和mys…

用实例域代替序数

在Java中&#xff0c;枚举类型的ordinal()方法返回枚举常量的序数&#xff08;即其在枚举声明中的位置&#xff09;。在某些情况下&#xff0c;使用实例域&#xff08;instance field&#xff09;代替序数可能更加安全和易读。以下是一个示例&#xff0c;演示如何使用实例域代替…