次のxml
ようなファイルがあります。
<Organizations xmlns="">
<Organization Title ="dfs" Score="70">
<Layer Title ="lar"></Layer>
</Organization>
<Organization Title ="srwrg" Score="70">
<Layer Title ="asdf"></Layer>
<Layer Title ="lfdkj"></Layer>
</Organization>
</Organizations>
私は自分の WPF プロジェクトでこのファイルを使用します: (ここにリソースがあります)
<XmlDataProvider x:Key="myData" Source="Data\farsDataOrganization.xml" XPath="//Organizations/Organization"/>
<CollectionViewSource x:Key="MyCVS" >
<CollectionViewSource.Source>
<Binding Source="{StaticResource myData}"/>
</CollectionViewSource.Source>
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="@Title" Direction="Ascending"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
Title
組織またはレイヤーに基づいてフィルターを作成する方法を知っていますTitle
:
XmlDataProvider p = (XmlDataProvider)this.FindResource("myData");
p.XPath = string.Format("//Organizations/Organization[Layer[contains(@Title,\"{0}\")]]", this.layerNameFilter.Text);
しかしTitle
、組織とレイヤーの両方に基づいてこれらのデータをフィルター処理したいと考えていますTitle
。何か提案はありますか?XPath
両方に基づいてフィルターを取得するように文字列を変更するにはどうすればよいですか?
編集
これらのデータを次の場所に表示しますTreeView
。
<TreeView Grid.Row="1" ItemsSource="{Binding Source={StaticResource MyCVS}}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="Organization" ItemsSource="{Binding XPath=Layer}">
<StackPanel Orientation="Vertical" Width="340" Margin="0,0,0,5">
<Label Content="{Binding XPath=@Title}" FontSize="13" Margin="0,0,0,-5"></Label>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>