J'essaie de créer un lien hypertexte que l'utilisateur peut cliquer et naviguer vers un site Web.Le lien hypertexte continue d'échouer
Le lien fonctionne mais j'obtiens cette exception qui arrête l'application: Echec de la conversion de la ressource en objet.
L'hyperlien fait partie d'une grille de données. Voici ce que j'ai:
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>
...
=============================== ===================================
code derrière:
...
private void dataLink_RequestNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e)
{
Process.Start(e.Uri.ToString());
e.Handled = true;
}
...
= ============================================= ================
Données de la classe: Lien
public string Link
{
get { return link; }
set
{
link = value;
Notify("Link");
}
}
=========================================== =======================
classe 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 = "";
...
============== ============================================= ==
Avez-vous des suggestions?
BR
pourquoi utilisez-vous à la fois la propriété '' NavigateUri' et événement RequestNavigate'? Le premier ne devrait-il pas suffire? –
pouvez-vous coller le code de la collection Tâches et son type? –
Pourquoi? Est-ce parce que j'ai suivi la réponse à cette question: http://stackoverflow.com/questions/2092890/add-hyperlink-to-textblock-wpf Que suggérez-vous? – Sulby