Я хочу создать поле списка динамично [codebehind c#]. Его источник данных является объектом класса.
class sample
{
string filepath;
string id;
string trackName;
}
Потребности:
Код:
sample samp=GetBL.GetValue();
ListBox lbTrack = new ListBox();
StackPanel sp = new StackPanel();
lbTrack.ItemSource = samp;
Geetha.
Создайте класс, который предоставляет ObservableCollection
как свойство с именем, скажем, 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.