Я использую вложенную ListBox для привязки данных, Это мой ListBoxСписок WPF внутри списка Binding
<ListBox x:Name="lst1" ItemsSource="{Binding ListDS}" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Disabled" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Margin="10">
<TextBlock Text="{Binding Name}"/>
<ListBox Height="300" Width="200" ItemsSource="{Binding userFiles }" Margin="0,10" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,10,0,0">
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Button Content="Print" Width="75" HorizontalAlignment="Right" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Margin="0,0,0,0" Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
Это мои объекты
public class UsersInfo
{
public long Id { get; set; }
public string Name { get; set; }
public DateTime DateCreated { get; set; }
public DateTime DateUploaded { get; set; }
public List<UsersFiles> userFiles { get; set; }
}
public class UsersFiles
{
public long Id { get; set; }
public string Name { get; set; }
public DateTime DateCreated { get; set; }
public DateTime DateDownloaded { get; set; }
}
и в моем ViewModel, у меня есть
public List<UsersInfo> ListDS{ get; set; }
Я инициализирую его в конструкторе ViewModel, и это то, как я заполняю данные
UsersInfo entity = new UsersInfo();
entity.MediaFiles = new List<UsersFiles>();
UsersFiles mFiles = new UsersFiles();
mFiles.Name = "abc";
mFiles.Id = 1
entity.Name = "User name";
entity.MediaFiles.Add(mFiles);
ListDS.Add(entity);
Проблема в том, что ListBox отображается пустым, на нем ничего не отображается, даже кнопка «Печать». Когда я добавил в него ListBoxItem, он отлично показывает. Где я ошибаюсь в привязке данных?
Какова ваша модель? где вы устанавливаете DataContext? точный порядок установки DataContext здесь важен, я полагаю, вы установили DataContext *** до того, как *** добавили какой-то объект в «ListDS», это нормально, если ваше изменение «ListDS» будет уведомлено с помощью INotifyPropertyChanged. –