开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 6659|回复: 0

如何更改自动生成列的编辑器设置?

[复制链接]

0

精华

8

贡献

1768

赞扬

特约版主

帖子
583
软币
4524
在线时间
275 小时
注册时间
2019-2-21
发表于 2021-5-7 09:35:25 | 显示全部楼层 |阅读模式

下载DevExpress v20.2完整版   

DevExpress WPF Subscription拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。

问题:

将GridControl与自动生成的列一起使用,两个列中包含一个电子邮件地址,并且网址必须是可单击的。在Hyperlink模板中找到了一些有关如何使用它的信息,但是这些列是自动生成的,并且出现在不同的模型中(ViewModel是通用的),因此无法定义特定的模板。希望能够通过一个事件(到Command)来拦截网格结构,并在特定的列名称上应用超链接类型,同时该项目是带有MVVM模式的C#。

解决方案:

可以处理AutoGeneratingColumn事件来完成,在此分配所需的EditSettingsCellTemplate

在XAML中:

[XML] 纯文本查看 复制代码
<dxg:GridControl>
<dxg:GridControl.View>
<dxg:TableView/>
</dxg:GridControl.View>
<i:Interaction.Triggers>
<i:EventTrigger EventName="AutoGeneratedColumns">
<cmd:EventToCommand Command="{Binding GenerateColumnsCommand}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</dxg:GridControl>


在方法中绑定到RelayCommand:

[C#] 纯文本查看 复制代码
public static void EditColumnBeforeShow(RoutedEventArgs args)
{
var gridControl = (GridControl)args.OriginalSource;
gridControl.Columns["ContactEmail"].EditSettings = new HyperlinkEditSettings() 
{
AllowAutoNavigate = true,
NavigationUrlFormat = "mailto:{0}"
};
}



上DevExpress中文网,获取第一手最新产品资讯!

DevExpress技术交流群3:700924826      欢迎一起进群讨论


回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-12-27 10:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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