Как создать Listbox динамически wpf - PullRequest
1 голос
/ 12 июля 2010

Я хочу создать список динамически [codebehind c #].Его источником данных является объект класса.

class sample
{
  string filepath;
  string id;
  string trackName;
}

Потребности:

  1. Отображение trackName как элемента списка в списке [динамически].

Код:

sample samp=GetBL.GetValue();
ListBox lbTrack = new ListBox();
StackPanel sp = new StackPanel();
lbTrack.ItemSource = samp;

Гита.

1 Ответ

2 голосов
/ 12 июля 2010

Создайте класс, который представляет ObservableCollection<sample> как свойство с именем, скажем, Samples. Создайте экземпляр этого класса, заполните его коллекцию и добавьте класс в словарь ресурсов окна с ключом, скажем, Data. Переопределите ToString() в классе sample, чтобы он возвращал то, что вы хотите видеть в ListBox.

Тогда сделайте это:

<ListBox ItemsSource="{StaticResource Data, Path=Samples}"/>

Без переопределения ToString() вы можете указать привязку дисплея:

<ListBox ItemSource="{StaticResource Data, Path=Samples}" 
         DisplayMemberBinding="{Binding Path=trackName"/>

Обратите внимание, что trackName должно быть свойством, а не полем.

Вы заметите, что я не создаю программно элементы управления WPF, а вместо этого использую привязку данных, чтобы сделать это для меня. Это основная фундаментальная концепция разработки приложений WPF.

...