Привязать к Ури в WPF - PullRequest
       8

Привязать к Ури в WPF

0 голосов
/ 20 декабря 2010

Я привязываю список URL-адресов к ListBox (MVVM) и обнаружил, что если модель string[], то все работает нормально, но если это List<Uri>, то в моем ListBox элементы не отображаются.Я предполагаю, что это потому, что WPF не знает, как преобразовать Uri в string, но

  1. Я бы подумал, что это просто вызовет ToString(), что я и хочу
  2. Я не знаю, как сказать WPF, как правильно поступить

Вот мой XAML:

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

Теперь, покапоскольку UrlsFound является string[], привязка работает, но если я сделаю рефакторинг, чтобы сделать его List<Uri>, в ListBox ничего не отобразится.Я изменил DataType="String" на "Uri", но это не помогло

1 Ответ

0 голосов
/ 20 декабря 2010

Должно быть что-то еще не так, поскольку я скопировал ваш 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; }
 }
}
...