2011-10-25 13 views
0

ユーザーがクリックしてウェブサイトに移動できるようなハイフリンクを作成しようとしています。ハイパーリンクが失敗し続ける

リンクは機能していますが、アプリケーションを停止するこの例外が発生します。 リソースをオブジェクトに変換できませんでした。

ハイパーリンクは、データグリッドの一部です。ここで私が持っているものです。

XAML:

... 
<DataTemplate x:Key="hyperlinkTemplate"> 
    <TextBlock> 
     <Hyperlink NavigateUri="{Binding Link}" RequestNavigate="dataLink_RequestNavigate"> 
      <TextBlock Text="{Binding TaskID}"></TextBlock> 
     </Hyperlink> 
    </TextBlock> 
</DataTemplate> 
... 

<DataGrid Grid.Column="1" AutoGenerateColumns="False" ItemsSource="{Binding Tasks}" > 
    <DataGrid.Columns> 
     <DataGridTemplateColumn Header="Name width link" CellTemplate="{StaticResource  hyperlinkTemplate}"></DataGridTemplateColumn> 
... 

===============================背後===================================

コード:

... 
private void dataLink_RequestNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e) 
{ 
    Process.Start(e.Uri.ToString()); 
    e.Handled = true; 
} 
... 

= ========================================== ===============

クラスデータ:リンク

public string Link 
    { 
     get { return link; } 
     set 
     { 
      link = value; 
      Notify("Link"); 
     } 
    } 

=========================================== =======================

Taskクラス

[Serializable] 
public class Task 
{ 
    private XmlNode node; 
    private string category = ""; 
    private int taskID = -1; 
    private string taskName = ""; 
    private string taskResponsible = ""; 
    private string taskResponsibleDepartment = ""; 
    private int priority = 5; 
    private string status = "Unknown"; 
    private string predecessorIndices = "None"; 
    private int indentLevel = 0; 
    private int sortOrder = 0; 
    private DateTime startDate = DateTime.Now; 
    private TimeSpan estimatedHours = default(TimeSpan); 
    private TimeSpan actualHours = default(TimeSpan); 
    private DateTime estimatedDeploymentDate = default(DateTime); 
    private DateTime desiredImplementationDate = default(DateTime); 
    private string estimatedHoursRecovery = ""; 
    private string actualHoursRecovery = ""; 
    private string tags = ""; 
    private TimeSpan totalHoursActual = default(TimeSpan); 
    private Department iN = new Department(); 
    private Department aPP = new Department(); 
    private Department sIS = new Department(); 
    private string link = ""; 
... 

============== ========================================== ==

ご意見はありますか?

BR

+0

を働いていますか?前者では十分ではありませんか? –

+0

タスクコレクションのコードとその種類を貼り付けることはできますか? –

+0

なぜですか?私はこの質問からの答えに従ったからです:http://stackoverflow.com/questions/2092890/add-hyperlink-to-textblock-wpfあなたは何をお勧めしますか? – Sulby

答えて

2

自分自身を見つけました。私はe.handled = true;をdatagrid_RequestNavigateに追加する必要がありました。ちょうどコード例も更新しました。あなたは `NavigateUri`プロパティと` RequestNavigate`イベントの両方を使用しない理由

それはすべての今

関連する問題