기본적으로 목록 상자에서 사용자에게 공지 사항을 표시하는 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
매우 사실이 게시되었습니다. 연휴로 인해 늦어서 죄송합니다. – manemawanna