C# DataGrid-在当前项上运行事件处理程序的键
小WPF程序的源代码如下所示。它列出了C# DataGrid-在当前项上运行事件处理程序的键,c#,wpf,datagrid,C#,Wpf,Datagrid,小WPF程序的源代码如下所示。它列出了DataGrid中c:\windows下的目录。该名称是一个链接,可以单击该链接在资源管理器中打开该目录 (这只是一个概念验证程序,用于说明问题。) 下面是它的样子: 我不仅能够单击链接来运行打开操作,还希望对其进行设置,以便用户可以在高亮显示行时按o键来运行打开操作 什么是一个好的设置方法?请注意,该程序主要是在C#中指定的,而不是在XAML中指定的,因此如果可能,请在C#中发布您的解决方案。但是,如果有必要,也欢迎使用XAML回答 MainWindow
DataGrid
中c:\windows
下的目录。该名称是一个链接,可以单击该链接在资源管理器中打开该目录
(这只是一个概念验证程序,用于说明问题。)
下面是它的样子:
我不仅能够单击链接来运行打开操作,还希望对其进行设置,以便用户可以在高亮显示行时按o
键来运行打开操作
什么是一个好的设置方法?请注意,该程序主要是在C#中指定的,而不是在XAML中指定的,因此如果可能,请在C#中发布您的解决方案。但是,如果有必要,也欢迎使用XAML回答
MainWindow.xaml
:
<Window x:Class="WpfFilesDataGrid.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfFilesDataGrid"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
</Grid>
</Window>
例如,您可以处理
PreviewKeyDown
事件:
data_grid.PreviewKeyDown += (s, e) =>
{
if(e.Key == Key.O && data_grid.SelectedItem is DirectoryInfo di)
System.Diagnostics.Process.Start(di.FullName);
};
完美而简单!谢谢@mm8!如果您碰巧知道:-):
data_grid.PreviewKeyDown += (s, e) =>
{
if(e.Key == Key.O && data_grid.SelectedItem is DirectoryInfo di)
System.Diagnostics.Process.Start(di.FullName);
};