使用 WPF DataGridHyperLinkColumn 项打开 Windows 资源管理器并打开文件
我想要实现以下目标:
创建一个具有 2 列的 WPF DataGrid:
第一列将包含以超链接样式显示目录路径的项目。单击超链接将在该项目指定的路径中打开 Windows 资源管理器。
第二个将包含以超链接样式显示文件路径的项目。单击超链接将启动该文件,并使用 Windows 定义的默认应用程序。
我不知道这是否是正确的选择,但我将 DataGridHyperlinkColumn 添加到了我的 DataGrid 中。一个问题是添加不引用 Internet 位置的 Uri 项目。另一个问题是以不打开网络浏览器的方式处理点击。
有人可以帮忙吗?
I want to achieve the following:
Create a WPF DataGrid that have 2 columns:
The first will have items showing paths to directories, in a hyperlink style. Clicking on a hyperlink will open Windows Explorer in the path specified by the item.
The second will have items showing paths to files, in a hyperlink style. Clicking on a hyperlink will launch the file, with the default application defined by Windows.
I don't know if it's the right choice, but I added DataGridHyperlinkColumn's to my DataGrid. One problem was to add Uri items that do not refer to an internet locations. Another problem was to handle the clicks in a way that does not open a web browser.
Anyone can help?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是通用的:
如果 URI 指向一个网站,它将使用默认的 Web 浏览器打开;如果它是一个文件夹,它将在资源管理器中打开;如果它是一个文件,它将使用与其关联的默认应用程序打开。
要将其用于自动生成的列,您的属性需要为
Uri
类型,以便生成DataGridHyperlinkColumn
。然后,您可以通过将样式放置在 DataGrid.Resources 中来连接该事件:This works universally:
If the URI points a website it will be opened with the default web-browser, if it is a folder it will be opened in explorer, if it is a file it will be opened with the default application associated with it.
To use this for autogenerated columns your property needs to be of type
Uri
so aDataGridHyperlinkColumn
is generated. You then can hook up the event by placing the style in theDataGrid.Resources
: