找不到资源'pages / edit / view'

时间:2014-04-11 05:02:37

标签: c# wpf xaml datagrid hyperlink

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

这是我的mainwindow.xaml中的代码

//Displaying the Page1.xaml from frame in MainWindow
<Frame Source="/Pages/Page1.xaml"/>

Page1.xaml中的Datagrid代码

<DataGrid Height="479" AutoGenerateColumns="False" Grid.Column="2" Grid.Row="2" Margin="12,55,24,148" RowHeaderWidth="0" FontSize="12" Name="dgList" CanUserResizeRows="False" CanUserReorderColumns="False" CanUserSortColumns="False" BorderBrush="#FFbab3b3" Background="White" Foreground="#FF565754" AlternatingRowBackground="#fffff5f6" HorizontalGridLinesBrush="#FFF8F8F8" VerticalGridLinesBrush="#FFbab3b3" IsReadOnly="True"  SelectionChanged="dgList_SelectionChanged" />

这就是我在Page1.xaml.cs

中设置datagrid的方法
public void SetupdgListDataGrid()
    {
        var col1 = new DataGridTextColumn();
        col1.Header = "Name";
        col1.Binding = new Binding("[0]");
        dgList.Columns.Add(col1);

        col1 = new DataGridTextColumn();
        col1.Header = "Age";
        col1.Binding = new Binding("[1]");
        dgList.Columns.Add(col1);


        try
        {
            var style1 = new Style(typeof(TextBlock));

            style1.Setters.Add(new EventSetter(Hyperlink.ClickEvent, (RoutedEventHandler)Event_ViewAction));

            var columnView = new DataGridHyperlinkColumn { Header = " ", Binding = new Binding("ViewUserLink"), ElementStyle = style1 };

            columnView.Binding = new Binding("[2]");

            dgList.Columns.Add(columnView);


        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }



        this.dgList.ItemsSource = SomeDataSourceObject;



    }

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

现在我对SomeDataSourceObject的定义如下

List<object> SomeDataSourceObject = new List<object>();

并填写如下数据。

string[] tempValues = new string[3];

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


SomeDataSourceObject.Add(tempValues);

1 个答案:

答案 0 :(得分:1)

您点击了文字&#34;编辑/查看&#34;这是一个没有任何东西链接的字符串。如果您提供了正确的资源(例如网址),您将被导航到它。

您还可以使用NavigationService明确停止加载内容:

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

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