В основном у меня есть приложение WPF, которое отображает объявления для пользователя в списке. Информация, которая заполняет список, поступает из файла XML, который содержит сведения о различных объявлениях. Затем я применяю шаблон данных для отображения соответствующих частей информации. У меня есть две кнопки внизу приложения. Я хочу, чтобы пользователь нажимал на кнопку непрочитанных объявлений, чтобы отфильтровать данные, чтобы в списке отображались только непрочитанные объявления. Затем, когда пользователь нажимает на Все объявления, я хочу, чтобы они снова отображались. Шаблон данных, который я использую, останется неизменным при нажатии любой кнопки.
В используемом XML-файле есть поле с именем read, где 0 указывает, что оно не было прочитано, а 1 указывает, что оно есть, и его следует использовать для фильтрации.
Так что на самом деле я просто ищу примеры фильтрации или любые хорошие учебники, чтобы я мог добиться определенного прогресса. Если вам понадобится какой-либо код, просто дайте мне знать, и я вставлю его.
EDIT
Теперь добавлен код ниже, чтобы показать, как связаны данные, а также расположение данных:
<XmlDataProvider
x:Key="Article"
Source="/Data/People.xml"
XPath="People/article"/>
<DataTemplate x:Key="AnnouncementTemplate">
<Border Background="#2200FF00"
BorderBrush="Black"
BorderThickness="1"
CornerRadius="8"
Margin="2,4,2,4"
Padding="2"
>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="220"/>
</Grid.ColumnDefinitions>
<Border Background="#2200FF00"
BorderBrush="Black"
BorderThickness="1"
CornerRadius="8"
Margin="2,4,2,4"
Padding="2"
>
<StackPanel Grid.Column="0">
<Image Stretch="Fill" Width="20" Source="Images/BlueOrb.ico" Height="20" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</StackPanel>
</Border>
<StackPanel Grid.Column="1" Margin="5">
<StackPanel Orientation="Horizontal">
<TextBlock FontWeight="Bold" Text="{Binding XPath=./author}" />
<TextBlock Text=" "/>
<TextBlock Text="{Binding XPath=./datetime}" TextTrimming="WordEllipsis"/>
</StackPanel>
<StackPanel>
<TextBlock FontWeight="Bold" Text="{Binding XPath=./title}"/>
</StackPanel>
<StackPanel>
<TextBlock Text="{Binding XPath=./body}" TextTrimming="WordEllipsis"/>
</StackPanel>
</StackPanel>
</Grid>
</Border>
</DataTemplate>
<ListBox Style="{StaticResource SpecialListStyle}"
Name="listBox1"
Margin="10,10,10,10"
Grid.Row="1"
ItemsSource="{Binding Source={StaticResource Article}}"
IsSynchronizedWithCurrentItem="True"
ItemContainerStyle="{StaticResource SpecialListItem}"
ItemTemplate="{StaticResource AnnouncementTemplate}"/>
Пример данных, хранящихся в файле XML, данные хотят фильтровать, поэтому в них отображаются только сообщения с чтением == 0
<People>
<article>
<author>Michael</author>
<title>Happy Christmas</title>
<body>Merry Christmas one and all</body>
<priority>1</priority>
<uid>G-0617-8567-EF32-hello</uid>
<audience>0</audience>
<read>0</read>
<datetime>December 31, 2009 23:59:59</datetime>
</article>
<article>
<author>Gary</author>
<title>Landesk</title>
<body>Landesk Distributed</body>
<priority>0</priority>
<uid>G-0618-8567-EF32-hello</uid>
<audience>0</audience>
<read>1</read>
<datetime>December 31, 2009 23:59:59</datetime>
</article>
</People>