1

ユーザーがクリックしてWebサイトに移動できる誇大広告を作成しようとしています。

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

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

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");
        }
    }

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

タスククラス

[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

4

1 に答える 1

4

自分自身を見つけた。datagrid_RequestNavigateに追加e.handled = true;する必要がありました。コード例も更新しました。

すべてが機能しています

于 2011-10-26T07:15:31.787 に答える