C# 如何在XML文件中存储超链接并将其检索到WPF列表框?

C# 如何在XML文件中存储超链接并将其检索到WPF列表框?,c#,xml,wpf,xaml,listbox,C#,Xml,Wpf,Xaml,Listbox,我又有问题了。我的问题是,我不知道如何在XML文件中存储超链接,以及如何从那里检索到WPF列表框。在我的应用程序中,我以以下方式编写XML文件: <?xml version="1.0" encoding="utf-8" ?> <Books xmlns=""> <Category name="Computer Programming"> <Book> <Author>H. Schildt</Author>

我又有问题了。我的问题是,我不知道如何在XML文件中存储超链接,以及如何从那里检索到WPF列表框。在我的应用程序中,我以以下方式编写XML文件:

<?xml version="1.0" encoding="utf-8" ?>
<Books xmlns="">
  <Category name="Computer Programming">
    <Book>
      <Author>H. Schildt</Author>
      <Title>C# 4.0 The Complete Reference</Title>
      <!--This is a hyperlink description-->
      <Link>https://www.mcgraw-hill.co.uk/html/007174116X.html</Link>
    </Book>
  </Category>
</Books>
<Window.Resources>
  . . . . . . . . . .
  <DataTemplate x:Key="detailDataTemplate">
     <StackPanel Orientation="Horizontal">
        <TextBlock Text="{Binding XPath=Title}"/>
        <TextBlock Text="{Binding XPath=Author}"/>
        <TextBlock Text="{Binding XPath=Link}"/>
     </StackPanel>
  </DataTemplate>
  . . . . . . . . . . .
</Window.Resources>

希尔德
C#4.0完整参考
https://www.mcgraw-hill.co.uk/html/007174116X.html
在窗口资源部分的XAML中,我以以下方式编写:

<?xml version="1.0" encoding="utf-8" ?>
<Books xmlns="">
  <Category name="Computer Programming">
    <Book>
      <Author>H. Schildt</Author>
      <Title>C# 4.0 The Complete Reference</Title>
      <!--This is a hyperlink description-->
      <Link>https://www.mcgraw-hill.co.uk/html/007174116X.html</Link>
    </Book>
  </Category>
</Books>
<Window.Resources>
  . . . . . . . . . .
  <DataTemplate x:Key="detailDataTemplate">
     <StackPanel Orientation="Horizontal">
        <TextBlock Text="{Binding XPath=Title}"/>
        <TextBlock Text="{Binding XPath=Author}"/>
        <TextBlock Text="{Binding XPath=Link}"/>
     </StackPanel>
  </DataTemplate>
  . . . . . . . . . . .
</Window.Resources>

. . . . . . . . . .
. . . . . . . . . . .
最后,我在列表框标记中写道:

<ListBox Name="lbxBooks" Grid.Row="1" Grid.Column="0"
. . . . . . . . . .
ItemTemplate="{StaticResource detailDataTemplate}" 
            IsSynchronizedWithCurrentItem="True"/>


但在应用程序启动后,超链接在屏幕上显示为简单字符串,未启用,也不允许鼠标单击以获取internet资源。因此,它不能作为internet资源的参考正常工作。它显示为简单的文本字符串如何更正此错误并强制链接正常工作?我必须在XML文件和XAML中更正什么?非常感谢您的帮助。

@Hyperlink是一个字符串
@WPF exmaple外观中的超链接
@通用XML工具:

  public class SerializationHelper
    {
        public static void SerializeToXML<T>(T t, String inFilename) where T : class
        {
            StreamWriter textWriter = null;

            try
            {
                var serializer = new XmlSerializer(t.GetType());
                textWriter = new StreamWriter(inFilename);
                serializer.Serialize(textWriter, t);

            }
            finally
            {
                if (textWriter != null) textWriter.Close();
            }
        }

        public static T DeserializeFromXML<T>(String inFilename) where T : class
        {
            TextReader textReader = null;
            T retVal = default(T);
            try
            {
                var deserializer = new XmlSerializer(typeof(T));
                textReader = new StreamReader(inFilename);
                retVal = (T)deserializer.Deserialize(textReader);
                return retVal;

            }
            finally
            {
                if (textReader != null) textReader.Close();
            }
        }
    }
public类SerializationHelper
{
公共静态void序列化ToXML(T,字符串填充名),其中T:class
{
StreamWriter textWriter=null;
尝试
{
var serializer=新的XmlSerializer(t.GetType());
textWriter=新的StreamWriter(内嵌名);
serializer.Serialize(textWriter,t);
}
最后
{
如果(textWriter!=null)textWriter.Close();
}
}
公共静态T反序列化FromXML(字符串填充名),其中T:class
{
TextReader=null;
T retVal=默认值(T);
尝试
{
var反序列化器=新的XmlSerializer(typeof(T));
textReader=新的StreamReader(内嵌名);
retVal=(T)反序列化程序;
返回返回;
}
最后
{
如果(textReader!=null)textReader.Close();
}
}
}


公共课堂教材
{
公共字符串作者{get;set;}
公共字符串标题{get;set;}
公共字符串链接{get;set;}
公共字符串分类{get;set;}
}
公共类数据
{
公共列表书籍{get;set;}
公共数据()
{
书籍=新列表();
}
}
// ....
var filePath=“fileName.xml”;
var bookList=新列表();
书单。添加(新书)
{
作者=“H.Schildt”,
链接=@“https://www.mcgraw-hill.co.uk/html/007174116X.html",
Catgegory=“计算机编程”,
Title=“C#4.0完整参考”,
});
//拯救
序列化XML(新数据{Books=bookList},文件路径);
//装载
var data=反序列化fromXML(filePath);

请原谅,我是XML新手。请给我一个现成的例子,这样我可以很容易地检查它。请