在WPF中绑定到Uri

时间:2010-12-20 00:17:50

标签: wpf data-binding mvvm

我将URL列表绑定到ListBox(MVVM),发现如果模型是string[],一切正常,但如果它是List<Uri>,则ListBox中没有项目显示1}}。我认为这是因为WPF不知道如何将Uri转换为string

  1. 我认为它只会调用ToString()这就是我想要的
  2. 我不知道如何告诉 WPF如何做正确的事
  3. 这是我的XAML:

    <ListBox Height="200" ItemsSource="{Binding Path=UrlsFound, Mode=OneWay}">
            <ListBox.ItemTemplate>
                <DataTemplate DataType="String">
                            <TextBlock Text="{Binding}" />
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    

    现在,只要UrlsFoundstring[]绑定就可以了,但是如果我重构为List<Uri>,则ListBox中不会显示任何内容。我将DataType="String"更改为"Uri",但这没有帮助

1 个答案:

答案 0 :(得分:0)

因为我复制了你的XAML并且有效,所以肯定会出现其他问题。

这是我的代码隐藏:

public partial class MainWindow : Window
{
 public MainWindow()
 {
  InitializeComponent();
  urlsFound.Add(new Uri("http://www.google.com"));
  urlsFound.Add(new Uri("http://www.google.com"));
  urlsFound.Add(new Uri("http://www.google.com"));
  this.DataContext = this;

 }

 private List<Uri> urlsFound=new List<Uri>();
 public List<Uri> UrlsFound
 {
  get { return urlsFound; }
  set { urlsFound = value; }
 }
}