Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 找不到资源';页面/编辑/查看';_C#_Wpf_Xaml_Datagrid_Hyperlink - Fatal编程技术网

C# 找不到资源';页面/编辑/查看';

C# 找不到资源';页面/编辑/查看';,c#,wpf,xaml,datagrid,hyperlink,C#,Wpf,Xaml,Datagrid,Hyperlink,我正在使用框架在主窗口中显示一页。现在,在这个特定的页面中,我以编程方式设置datagrid。这个数据网格包含超链接。现在,每次我点击那个超链接,我都会得到“找不到资源”错误。我的名为page1.xaml的页面位于“Pages”文件夹中。“编辑/查看”是特定超链接的文本。我如何解决这个问题?我希望在单击“编辑/查看”超链接时从页面调用一些操作。提前谢谢 这里是我的mainwindow.xaml中的代码 //Displaying the Page1.xaml from frame in MainW

我正在使用框架在主窗口中显示一页。现在,在这个特定的页面中,我以编程方式设置datagrid。这个数据网格包含超链接。现在,每次我点击那个超链接,我都会得到“找不到资源”错误。我的名为page1.xaml的页面位于“Pages”文件夹中。“编辑/查看”是特定超链接的文本。我如何解决这个问题?我希望在单击“编辑/查看”超链接时从页面调用一些操作。提前谢谢

这里是我的mainwindow.xaml中的代码

//Displaying the Page1.xaml from frame in MainWindow
<Frame Source="/Pages/Page1.xaml"/>
现在我对一些DataSourceObject的定义如下

List<object> SomeDataSourceObject = new List<object>();
您正在单击文本“编辑/查看”,这是一个未与任何内容链接的字符串。如果您提供了正确的资源(例如web URL),您将被导航到该资源

您还可以使用NavigationService显式停止加载内容:

public void Event_ViewAction(object sender, RoutedEventArgs e)
{
  MessageBox.Show("Edit clicked");          
  this.NavigationService.StopLoading();         
}

但是,如果它应该像一个按钮一样工作,我建议添加一个经典按钮,并按照我在评论中写的那样设计它。

好的,谢谢你的回复。但我如何调用超链接单击的方法。例如,方法“Event_ViewAction”或任何其他方法。DataGridHyperlinkColumn表示一个DataGrid列,该列在其单元格中承载Uri元素(通过MSDN)。在您的例子中,会单击超链接(调用事件处理程序),但它也会启动到Uri的导航过程。如果您只需要一个看起来像使用DataGridTemplateColumn的链接的按钮,请向其添加一个按钮并将其样式设置为超链接。最简单的方法是直接在XAML中声明网格列。
List<object> SomeDataSourceObject = new List<object>();
string[] tempValues = new string[3];

tempValues[0] = "FirstName";
tempValues[1] = "20";
tempValues[2] = "Edit/View";


SomeDataSourceObject.Add(tempValues);
public void Event_ViewAction(object sender, RoutedEventArgs e)
{
  MessageBox.Show("Edit clicked");          
  this.NavigationService.StopLoading();         
}