我正在制作一个小型的个人用途应用程序来练习WPF和C#。应用程序将基于存储在SQL表中的文件路径启动游戏(或其他应用程序)。我的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”我认为这就是为什么应用程序错误地说“系统找不到指定的文件“因为”System.Data.DataRowView“当然不是有效的程序。
如何让它通过正确的字符串代替“System.Data.DataRowView”?
答案 0 :(得分:0)
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);
}
}
答案 1 :(得分:0)
将DataGrid
的所选项目投放到DataRowView
DataRowView row = (DataRowView)dataGrid1.SelectedItem;
然后
row["ColumnName"];