Я пытаюсь связать список со списком в WPF. Но, похоже, это не работает, я просто ничего не вижу на экране.Список привязки к listboxitem в wpf
Вот мой код:
WPF
<ListBox x:Name="listBox" HorizontalAlignment="Left" Height="453" VerticalAlignment="Top" Width="119" Margin="0,43,0,0" ItemsSource="{Binding orderlist}">
<ListBoxItem Content="{Binding orderlist.ID}"></ListBoxItem>
</ListBox>
C#
Order order = new Order();
Klantgegevens klantgegevens = new Klantgegevens();
XmlReader rdr = XmlReader.Create(@"C:\Users\Gebruiker\Desktop\EDI\Rekening.xml");
rdr.ReadToFollowing("datum");
order.DatumOntvangst = rdr.ReadElementContentAsString();
rdr.ReadToFollowing("volgnr");
order.Status = "Aangenomen";
order.Opmerkingen = "";
rdr.ReadToFollowing("naam");
order.Afzender = rdr.ReadElementContentAsString();
rdr.ReadToFollowing("naam");
klantgegevens.Naam = rdr.ReadElementContentAsString();
rdr.ReadToFollowing("straat");
klantgegevens.Straat = rdr.ReadElementContentAsString();
rdr.ReadToFollowing("huisnr");
klantgegevens.Huisnummer = rdr.ReadElementContentAsInt();
rdr.ReadToFollowing("plaats");
klantgegevens.Woonplaats = rdr.ReadElementContentAsString();
rdr.ReadToFollowing("postcode");
klantgegevens.Postcode = rdr.ReadElementContentAsString();
rdr.ReadToFollowing("telefoonnr");
klantgegevens.Telefoonnummer = rdr.ReadElementContentAsString();
order.Klantgegevens = klantgegevens;
orderlist.Add(order);
listBox.DataContext = orderlist;
Как вы, наверное, знаете, заказ пользовательский класс, и поэтому Klantgegevens. Я довольно новыми для связывания и WPF в общем, так, простите меня за stupidness :)
Спасибо, это один шаг в правильном направлении, я думаю, но он работает только в первый раз, когда я добавляю что-то в список. –
Если вы хотите динамически добавлять элементы в ListBox во время выполнения, вы должны установить свойство ItemsSource для a ObservableCollection вместо списка . ObservableCollection предоставляет уведомления об изменениях, но в списке нет: https://msdn.microsoft.com/en-us/library/ms668604%28v=vs.110%29.aspx –
mm8
Последний вопрос, если можно, могу ли я сделать событие для элемента в этом списке. Скажем, хочу ли я видеть, какой текст находится в объекте с нажатой кнопкой –