基于DataGrid选择值的按钮点击事件
Buttonclick event based on DataGrid selected value
我正在制作一个个人使用的小应用程序来练习 WPF 和 C#。该应用程序将根据存储在 SQL table 中的文件路径启动游戏(或其他应用程序)。我的 SQL 连接工作正常,数据已检索。
string query = "SELECT Title, [Path] FROM GOG.dbo.Games";
我正在使用 DataGrid 控件来显示游戏列表及其路径。我有一个“启动游戏”按钮,我想在 DataGrid 中获取当前突出显示的项目(即路径),然后获取路径字符串,因此 运行 使用 Process.Start() 方法.
这是我 Button_Click 上的内容,但我无法使用它:
private void LaunchButton_Click(object sender, RoutedEventArgs e)
{
string gamePath = dataGrid1.SelectedItem.ToString();
Process.Start(gamePath);
}
Debug 显示“gamePath "System.Data.DataRowView" string”,而不是实际路径的值,例如:“C:\Windows\System32\calc.exe”,我认为这就是为什么应用程序出错时说“The系统找不到指定的文件”,因为“System.Data.DataRowView”当然不是有效程序。
如何让它输入正确的字符串而不是“System.Data.DataRowView”?
dataGrid1.SelectedItem
给你 System.Data.DataRowView
对象。所以你可以直接将它用作字符串。你必须像下面那样从中获取路径。
private void LaunchButton_Click(object sender, RoutedEventArgs e)
{
var row=dataGrid1.SelectedItem as System.Data.DataRowView;
if(row!=null)
{
string gamePath = row["Path"].ToString();
Process.Start(gamePath);
}
}
将 DataGrid
的选定项目投射到 DataRowView
DataRowView row = (DataRowView)dataGrid1.SelectedItem;
然后
row["ColumnName"];
我正在制作一个个人使用的小应用程序来练习 WPF 和 C#。该应用程序将根据存储在 SQL table 中的文件路径启动游戏(或其他应用程序)。我的 SQL 连接工作正常,数据已检索。
string query = "SELECT Title, [Path] FROM GOG.dbo.Games";
我正在使用 DataGrid 控件来显示游戏列表及其路径。我有一个“启动游戏”按钮,我想在 DataGrid 中获取当前突出显示的项目(即路径),然后获取路径字符串,因此 运行 使用 Process.Start() 方法.
这是我 Button_Click 上的内容,但我无法使用它:
private void LaunchButton_Click(object sender, RoutedEventArgs e)
{
string gamePath = dataGrid1.SelectedItem.ToString();
Process.Start(gamePath);
}
Debug 显示“gamePath "System.Data.DataRowView" string”,而不是实际路径的值,例如:“C:\Windows\System32\calc.exe”,我认为这就是为什么应用程序出错时说“The系统找不到指定的文件”,因为“System.Data.DataRowView”当然不是有效程序。
如何让它输入正确的字符串而不是“System.Data.DataRowView”?
dataGrid1.SelectedItem
给你 System.Data.DataRowView
对象。所以你可以直接将它用作字符串。你必须像下面那样从中获取路径。
private void LaunchButton_Click(object sender, RoutedEventArgs e)
{
var row=dataGrid1.SelectedItem as System.Data.DataRowView;
if(row!=null)
{
string gamePath = row["Path"].ToString();
Process.Start(gamePath);
}
}
将 DataGrid
的选定项目投射到 DataRowView
DataRowView row = (DataRowView)dataGrid1.SelectedItem;
然后
row["ColumnName"];