WPF树视图绑定 [英] WPF tree view binding

查看:66
本文介绍了WPF树视图绑定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在网格中显示图像文件.它们将从树视图中选择为名称,并且树视图与xml文件绑定,我正在显示图像的名称,并且我想使用我在xml中定义的ref属性,即图像的路径.
请任何人理解我的问题,并为我提供解决方案.

xml是:

 <  图书馆 > ; 
    <  类别    ="  全部" 名称  全部" > 
            <  图书    ="  故事" 名称  和尚"     ref   =   C:\ Users \ Public \ Pictures \ Sample   Pictures \ page2/  > 
        <  图书    ="  故事" 名称  照片"     ref   =   C:\ Users \ Public \ Pictures \ Sample   Pictures \ page3/ ">> ; 
            <  图书    ="  恐怖" 名称   Better You"    ref   =   C:\ Users \ Public \ Pictures \ Sample   Pictures \ page4/  > 
        <  图书    ="  恐怖" 名称   Dracula"    ref   =   C:\ Users \ Public \ Pictures \ Sample   Pictures \ page5/ ">> ; 
    <  /类别 > 

<  /库 >   pre> 

我将树形视图用作:

 <   Window.Resources  > 
        <   HierarchicalDataTemplate     ="   {Binding Path = Elements}"    x:Key   ="  <   TreeViewItem     ="   {Binding Path = Attribute [Name] .Value}" / > 
        <  /HierarchicalDataTemplate  > 
        <!-  < XmlDataProvider x:Key ="XMLdata"源="C:\ Users \ SBS \ Desktop \ wizaed.xml"></XmlDataProvider>  ->  
    <  /Window.Resources  >  



 < TreeView  MouseUp ="_ treeView_MouseUp" Cursor ="Hand" x:Name ="_ treeView" Width ="160" Background =透明" Margin ="0, 10 ,10" BorderBrush ="Transparent" BorderThickness ="0 "
                              ItemsSource ="{.元素}"
                              ItemTemplate ="{" /> 




后面的代码是:

XDocument XDoc = XDocument.Parse(File.ReadAllText(@"C:\ Users \ Public \ Mylibrary.xml"));
_treeView.DataContext = XDoc;

解决方案

您是否要实现这样的目标? < Window.Resources > < XmlDataProvider =" XMLdata" C :\ DirectoryStructure \ Library.xml" / > < HierarchicalDataTemplate =" 库" ItemsSource {绑定XPath = Elements}" < TreeViewItem > < TreeViewItem.Header > < StackPanel =" < 图片 =" {Binding XPath = @ ref}" / > < TextBlock =" {Binding XPath = @ Name}" / > < /StackPanel > < /TreeViewItem.Header > < /TreeViewItem > < /HierarchicalDataTemplate > < /Window.Resources > < 网格 > < TreeView =" 手" x:Name _ treeView " 宽度 160" 背景 透明" 保证金 =" BorderBrush 透明" BorderThickness 0" ItemsSource =" ItemTemplate =" / <Library> <Category CategoryName="All" Name="All"> <Book CategoryName="Story" Name="The Monk" ref=C:\Users\Public\Pictures\Sample Pictures\page2/> <Book CategoryName="Story" Name="Photos" ref=C:\Users\Public\Pictures\Sample Pictures\page3/> <Book CategoryName="Horror" Name="Better You" ref=C:\Users\Public\Pictures\Sample Pictures\page4/> <Book CategoryName="Horror" Name="Dracula" ref=C:\Users\Public\Pictures\Sample Pictures\page5/> </Category> </Library>



and i am using the tree view as:

<Window.Resources>
        <HierarchicalDataTemplate ItemsSource="{Binding Path=Elements}" x:Key="Library">
            <TreeViewItem Header="{Binding Path=Attribute[Name].Value}"/>
        </HierarchicalDataTemplate>
        <!--<XmlDataProvider x:Key="XMLdata" Source="C:\Users\SBS\Desktop\wizaed.xml" ></XmlDataProvider>-->
    </Window.Resources>



<TreeView MouseUp="_treeView_MouseUp" Cursor="Hand" x:Name="_treeView" Width="160" Background="Transparent" Margin="0,10,10,10" BorderBrush="Transparent" BorderThickness="0"
                              ItemsSource="{Binding Path=Root.Elements}"
                              ItemTemplate="{StaticResource ResourceKey=Library}" />




and the code behind is:

XDocument XDoc = XDocument.Parse(File.ReadAllText(@"C:\Users\Public\Mylibrary.xml"));
_treeView.DataContext = XDoc;

解决方案

Are you trying to achieve something like this?

<Window.Resources>
   <XmlDataProvider x:Key="XMLdata" Source="C:\DirectoryStructure\Library.xml" />
   <HierarchicalDataTemplate x:Key="Library" ItemsSource="{Binding XPath=Elements}">
      <TreeViewItem>
         <TreeViewItem.Header>
           <StackPanel Orientation="Horizontal">
             <Image Source="{Binding XPath=@ref}" />
             <TextBlock Text="{Binding XPath=@Name}" />
           </StackPanel>
         </TreeViewItem.Header>
      </TreeViewItem>
   </HierarchicalDataTemplate>
</Window.Resources>
<Grid>
<TreeView Cursor="Hand" x:Name="_treeView" Width="160" Background="Transparent" Margin="0,10,10,10" BorderBrush="Transparent" BorderThickness="0"

                           ItemsSource="{Binding XPath=//Book, Source={StaticResource XMLdata}}"

                           ItemTemplate="{StaticResource ResourceKey=Library}" />


这篇关于WPF树视图绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆