Как заполнить ListView с помощью C# вместо XAML
Я хотел бы заполнить ListView
с помощью С# (WPF), а не с помощью XAML. Причина этого в том, что мы не знаем количество элементов перед выполнением.
Это мой рабочий код XAML:
<ListView Name="listView_BusinessContacts" SelectionMode="Single">
<ListViewItem Selected="ListViewItem_Selected">
<DockPanel DockPanel.Dock="Top" Name="dockPanel_1">
<Image DockPanel.Dock="Left" Source="/X;component/Images/folder.png" Stretch="None" />
<Label Content="Test 123" DockPanel.Dock="Right" Name="label_1" />
</DockPanel>
</ListViewItem>
</ListView>
Моя идея состоит в том, чтобы сначала создать файл ListViewItem
. После этого я мог создать файл DockPanel
. Но теперь я не знаю, как добавить два элемента в DockPanel
(здесь: Image
и Label
). После этого я добавлял DockPanel
к ListViewItem
, а затем добавлял ListViewItem
к ListView
.
Я надеюсь, что вы понимаете, что я хочу сделать.
Решение SynerCoder:
public void SetListViewItems()
{
foreach (var item in File.ReadAllLines(@"C:\Companies\Companies.txt", Encoding.UTF8))
{
Image image = new Image();
image.Source = new BitmapImage(new Uri(@"Images\folder.png", UriKind.Relative));
image.Stretch = Stretch.None;
Label label = new Label();
label.Content = "Test 123";
DockPanel.SetDock(image, Dock.Left);
DockPanel.SetDock(label, Dock.Right);
DockPanel dockPanel = new DockPanel();
dockPanel.Children.Add(image);
dockPanel.Children.Add(label);
ListViewItem listViewItem = new ListViewItem();
listViewItem.Content = dockPanel;
listView_BusinessContacts.Items.Add(listViewItem);
}
}
ItemTemplate
ListView и привязать свойствоItemsSource
к набору элементов данных. См. статью Обзор шаблонов данных на сайте MSDN. Стандартные книги WPF также подробно объясняют это. - person Clemens   schedule 20.05.2014ItemsSource
изListView
к коллекции в вашей модели представления, вам не нужно знать количество элементов, которые будут вListView
. Вам просто нужно определить шаблон визуального представления элемента в этом списке, а затем можно дополнительно связать свойства элемента со свойствами элементов пользовательского интерфейса. - person Mashton   schedule 20.05.2014