找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2494|回复: 12

轻松进行WPF界面开发,DevExpress WPF Gantt - Resources

 火.. [复制链接]
  • 打卡等级:常驻代表
  • 打卡总天数:34
  • 打卡月天数:6
  • 打卡总奖励:9027
  • 最近打卡:2025-12-17 23:15:51

2823

主题

541

回帖

2万

积分

管理员

积分
22569
发表于 2021-4-28 22:34:19 | 显示全部楼层 |阅读模式
通过DevExpress WPF Controls,您能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。
WPF Gantt控件(v20.1)允许您根据需要将资源分配给各个任务,资源可以是成功完成实际任务所需的一切(从个人和员工到物理设备和资产)。


资源绑定
使用 ResourcesSource 属性将WPF Gantt控件绑定到资源集合。
<dxgn:GanttControl ItemsSource="{Binding Items}"><dxgn:GanttControl.Columns><dxgn:GanttColumn BindTo="Name"/><dxgn:GanttColumn BindTo="StartDate"/><dxgn:GanttColumn BindTo="FinishDate"/></dxgn:GanttControl.Columns><dxgn:GanttControl.View><dxgn:GanttView ResourcesSource="{Binding Resources}" ... /></dxgn:GanttControl.View></dxgn:GanttControl>public class StartupBusinessPlanViewModel {public List<GanttTask> Items { get; private set; }public List<GanttResource> Resources { get; private set; }// ...public StartupBusinessPlanViewModel() {this.Items = CreateData();this.Resources = CreateResources();// ...}List<GanttTask> CreateData() {var tasks = new List<GanttTask>();// ...tasks.Add(new GanttTask { Id = 53,ParentId = 48,Name = "Describe strengths, weaknesses, assets and threats",StartDate = new DateTime(2019, 1, 9, 13, 0, 0),FinishDate = new DateTime(2019, 1, 10, 12, 0, 0),});tasks.Add(new GanttTask { Id = 54,ParentId = 48,Name = "Estimate sales volume during startup period",StartDate = new DateTime(2019, 1, 10, 13, 0, 0),FinishDate = new DateTime(2019, 1, 11, 12, 0, 0),});// ...return tasks;}List<GanttResource> CreateResources() {var resources = new List<GanttResource>();resources.Add(new GanttResource { Name = "Business Advisor", Id = 1 });resources.Add(new GanttResource { Name = "Peers", Id = 2 });resources.Add(new GanttResource { Name = "Lawyer", Id = 3 });resources.Add(new GanttResource { Name = "Government Agency", Id = 4 });resources.Add(new GanttResource { Name = "Manager", Id = 5 });resources.Add(new GanttResource { Name = "Owners", Id = 6 });resources.Add(new GanttResource { Name = "Accountant", Id = 7 });resources.Add(new GanttResource { Name = "Banker", Id = 8 });resources.Add(new GanttResource { Name = "Information Services", Id = 9 });return resources;}}
上面的代码示例使用MVVM库中提供的内置数据类,但是您也可以将WPF Gantt控件链接到您的自定义资源类。
检索资源依赖项
将WPF甘特图控件绑定到资源后,将这些资源分配给任务。 您的数据源可以通过以下方式存储资源依赖性:
  • 在一个单独的集合中,其中每个元素都包含一个任务 - 资源对。
  • 在包含有关其资源信息的任务对象中。
检索存储在单独集合中的资源依赖项
收集项目应包含任务和资源字段。
public class GanttResourceLink {public object TaskId { get; set; }public object ResourceId { get; set; }}
将ResourceLinksSource属性绑定到资源依赖项的集合(由下面的代码示例中的ResourceLinks ViewModel属性公开)。
<dxgn:GanttControl ItemsSource="{Binding Tasks}"><dxgn:GanttControl.View><dxgn:GanttView ...ResourcesSource="{Binding Resources}"ResourceLinksSource="{Binding ResourceLinks}"></dxgn:GanttView></dxgn:GanttControl.View></dxgn:GanttControl>
检索存储在任务对象中的资源依赖关系
收集项目应包含一个资源字段。
public class GanttResourceLink {public object ResourceId { get; set; }}
任务对象应提供对任务资源集合的访问。
public class GanttTask {public object Id { get; set; }public object ParentId { get; set; }public string Name { get; set; }public DateTime? StartDate { get; set; }public DateTime? FinishDate { get; set; }public ObservableCollection<GanttResourceLink> ResourceLinks { get; set; }// ...}
将资源依赖关系数据字段的路径分配给
GanttView.ResourceLinksPath属性(由下面的代码示例中的ResourceLinks任务属性公开)。
<dxgn:GanttControl ItemsSource="{Binding Tasks}"><dxgn:GanttControl.View><dxgn:GanttView ...ResourcesSource="{Binding Resources}"ResourceLinksPath="ResourceLinks"></dxgn:GanttView></dxgn:GanttControl.View></dxgn:GanttControl>
工控课堂 www.gkket.com

0

主题

142

回帖

392

积分

注册会员

积分
392
发表于 2021-5-1 03:09:49 | 显示全部楼层
淡定,淡定,淡定……
工控课堂 www.gkket.com

0

主题

274

回帖

1008

积分

中级会员

积分
1008
发表于 2021-5-1 13:41:18 | 显示全部楼层
激动人心,无法言表!
工控课堂 www.gkket.com

0

主题

167

回帖

347

积分

注册会员

积分
347
发表于 2025-11-14 13:35:24 | 显示全部楼层
赞同 + 10086,完全说出了我的想法!
工控课堂 www.gkket.com

0

主题

136

回帖

393

积分

注册会员

积分
393
发表于 2025-11-14 14:04:44 | 显示全部楼层
蹲个后续,楼主记得更新呀,在线等挺急的~
工控课堂 www.gkket.com

0

主题

106

回帖

447

积分

注册会员

积分
447
发表于 2025-11-14 14:15:32 | 显示全部楼层
求个链接 / 教程,楼主好人一生平安~
工控课堂 www.gkket.com

0

主题

82

回帖

114

积分

新手上路

积分
114
发表于 2025-11-14 16:29:35 | 显示全部楼层
蹲一波同款,有没有小伙伴推荐?
工控课堂 www.gkket.com

0

主题

116

回帖

191

积分

新手上路

积分
191
发表于 2025-11-14 18:06:19 | 显示全部楼层
救命!这波发言太秀了,直接原地封神~
疯狂认同!楼主说出了我不敢说的话
工控课堂 www.gkket.com

0

主题

96

回帖

147

积分

新手上路

积分
147
发表于 2025-11-14 21:16:17 | 显示全部楼层
占个楼慢慢看,先马克一下
楼主辛苦啦,期待下一篇分享
工控课堂 www.gkket.com

0

主题

167

回帖

347

积分

注册会员

积分
347
发表于 2025-11-14 21:20:32 | 显示全部楼层
救命!这回复笑到我捶桌,必须置顶~
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-23 08:54 , Processed in 0.093471 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表