У меня есть список с именем lstTickets и комбинированный список с именем cboFilter.Я пытаюсь отфильтровать элементы в моем списке на основе тикета. Область, которая находится в поле со списком.Так, например, если я выбираю из списка, это единственная команда в списке.Любая помощь приветствуется.
List<Ticket> = new List<Ticket>()
{
new Ticket { Name = "Arsenal", Badge = "images/arsenal.jpg", Price = 900, Stadium = "emirates.jpg", District = "London" },
new Ticket { Name = "Tottenham Hotspur", Badge = "images/tottenham.jpg", Price = 850, Stadium = "tottenham.jpg", District = "" },
new Ticket { Name = "Manchester United", Badge = "images/.png", Price = 1000, Stadium = "oldtrafford.jpg", District = "" },
};
private void cboFilter_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var query = from Ticket in tickets where cboFilter.SelectedItem.ToString() == Ticket.District select Ticket;
lstTickets.ItemsSource = null;
lstTickets.Items.Clear();
List<Ticket> tmp = new List<Ticket>();
foreach (var tickets in query)
{
tmp.Add(tickets);
}
lstTickets.ItemsSource = tmp;
}
<Image Width="200" Height="150" HorizontalAlignment="Left" Source="{x:Bind Badge }" />
<TextBlock FontSize="22" HorizontalAlignment="Left" Text="{x:Bind Name}" Style="{StaticResource HeaderTextBlockStyle}"/>
<TextBlock FontSize="16" HorizontalAlignment="Left"> € <Run Text="{Binding Price}" /></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Редактировать: заполнение поля со списком в mainpage.cs
private void myGrid_Loaded(object sender, RoutedEventArgs e)
{
}