У меня проблема с ListBox. Я пытаюсь заполнить его данными из базы данных, но список не отображается. Я просмотрел много похожих вопросов, но не нашел ответа, который бы работал для меня :( Мой код для ListBox:
<ListBox x:Name="OrdersListBox" Grid.Row="1" VerticalContentAlignment="Center" ItemTemplate="{StaticResource OrdersTemplate}">
</ListBox>
И для OrdersTemplate:
<DataTemplate x:Key="OrdersTemplate">
<StackPanel>
<DockPanel DockPanel.Dock="Left" DataContext="{StaticResource OrdersViewSource}">
<TextBlock Text="OrderID: " FontSize="18"/>
<TextBlock Text="{Binding OrderID}" FontSize="18"/>
</DockPanel>
</StackPanel>
</DataTemplate>
Код для страницы:
public partial class Account : Page
{
Entities1 Context;
Customers Customer;
CollectionViewSource OrdersViewSource;
public Account(Entities1 Context, Customers Customer)
{
InitializeComponent();
this.Context = Context;
this.Customer = Customer;
this.OrdersViewSource = this.FindResource("OrdersViewSource") as CollectionViewSource;
DataContext = this;
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
Context.Orders.Load();
this.OrdersViewSource.Source = Context.Orders.Local.Where(o => o.CustomerName == Customer.CompanyName).Select(o => o);
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Orders Order = new Orders
{
CustomerName = Customer.CompanyName
};
NewOrder NewOrder = new NewOrder(Context, Order);
this.NavigationService.Navigate(NewOrder);
}
}
У меня также есть это в Grid.Resources:
<CollectionViewSource x:Key="OrdersViewSource"/>
Я почти уверен, что привязка работает, потому что при вызове ListBox так:
<ListBox x:Name="OrdersListBox" Grid.Row="1" VerticalContentAlignment="Center" ItemTemplate="{StaticResource OrdersTemplate}">
<DockPanel/>
</ListBox>
показывает первый элемент OrderID.
Почему я не вижу ListBox при запуске моего приложения?