基本上我有一個WPF應用程序,它將在列表框中向用戶顯示公告。填充列表框的信息來自XML文件,其中包含有關不同公告的詳細信息。然後我應用數據模板來顯示相關的信息。我所擁有的是應用程序底部的兩個按鈕,我想要的是當用戶單擊未讀通知按鈕時,數據將被過濾以僅顯示列表框中的未讀通知。然後,當用戶點擊所有公告時,我希望它們全部再次顯示。我正在使用的數據模板將保持不變,無論點擊哪個按鈕。在WPF中篩選綁定XML數據
正在使用的XML文件中有一個名爲read的字段,其中0表示它沒有被讀取,而1表示它具有並且應該用於過濾。
所以我真的只是尋找過濾或任何好的教程的例子,所以我可以取得一些進展。如果你需要我的任何代碼,只是讓我知道,我會粘貼在
編輯
現在添加下面的代碼以顯示數據是如何約束,也是數據的佈局。
在XML文件中保持的數據的<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}"/>
實施例中,數據要被過濾,以便只顯示消息,其中讀出== 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>
一知半解總是有害的,所以請粘貼一些代碼以獲得更好的輸入 – Firoz 2009-12-16 12:05:08
現在非常真實的發佈,對於延誤是由於假期,感到抱歉。 – manemawanna 2010-01-04 10:54:02