• 玩一个:可以显示任何xml树结构的xaml定义


    学习中, 玩一玩。 效果如下。Xaml随后。   

    <Page
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:y="clr-namespace:System.Xml;assembly=system.xml"  
      >
      <Page.Resources>
        <XmlDataProvider x:Key="xdata" Source="C:devUpgradeLog.XML">
        </XmlDataProvider>
        <HierarchicalDataTemplate x:Key="h1" ItemsSource="{Binding XPath=node()|@*}" >
          <StackPanel Orientation="Horizontal">
          <StackPanel x:Name="attrib" Visibility="Collapsed" Orientation="Horizontal">
            <TextBlock Text="@"/>
            <TextBlock Text="{Binding Path=Name}"/>
            <TextBlock Text="='"/>
            <TextBlock Text="{Binding Path=Value}"/>
            <TextBlock Text="'"/>
          </StackPanel>
          <StackPanel x:Name="ele" Visibility="Collapsed" Orientation="Horizontal">
            <TextBlock Text="{Binding Path=Name}"/>
            <TextBlock Text=" ChildCount="/>
            <TextBlock Text="{Binding Path=ChildNodes.Count}"/>
          </StackPanel>
          <StackPanel x:Name="txt" Visibility="Collapsed" Orientation="Horizontal">
            <TextBlock Text="Text()="/>
            <TextBlock Text="{Binding XPath=.}"/>
          </StackPanel>
          <StackPanel x:Name="comment" Visibility="Collapsed" Orientation="Horizontal">
            <TextBlock Text="comment()="/>
            <TextBlock Text="{Binding Path=InnerText}"/>
          </StackPanel>
          <StackPanel x:Name="pi" Visibility="Collapsed" Orientation="Horizontal">
            <TextBlock Text="pi="/>
            <TextBlock Text="{Binding Path=Name}"/>
          </StackPanel>
          </StackPanel>
          <HierarchicalDataTemplate.Triggers>
            <DataTrigger Binding="{Binding Path=NodeType}" Value="Attribute">
             <Setter  TargetName="attrib" Property="Visibility" Value="Visible"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding Path=NodeType}" Value="Element">
             <Setter  TargetName="ele" Property="Visibility" Value="Visible"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding Path=NodeType}" Value="Text">
             <Setter  TargetName="txt" Property="Visibility" Value="Visible"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding Path=NodeType}" Value="CDATA">
             <Setter  TargetName="txt" Property="Visibility" Value="Visible"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding Path=NodeType}" Value="Comment">
             <Setter  TargetName="comment" Property="Visibility" Value="Visible"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding Path=NodeType}" Value="ProcessingInstruction">
             <Setter  TargetName="pi" Property="Visibility" Value="Visible"/>
            </DataTrigger>
          </HierarchicalDataTemplate.Triggers>
        </HierarchicalDataTemplate>
      </Page.Resources>
      <Grid>  
      <Grid.RowDefinitions>
      <RowDefinition/>
      </Grid.RowDefinitions>
      <TreeView Grid.Row="0" DataContext="{StaticResource xdata}" ItemsSource="{Binding XPath=/node()}" ItemTemplate="{StaticResource h1}"  >
      </TreeView>
      </Grid>
    </Page>
    

      

     

  • 相关阅读:
    iOS中的隐式动画
    CALayer 为什么选择 cg 开头 而 不选择 UI 开头
    webStorm中的混乱代码格式化
    html5中的常用的库
    地下城勇士外挂
    开发板的时间设置有效,但重启恢复
    8148
    监控行人检测 .
    Linux设备驱动程序学习之分配内存
    快熟傅里叶算法图之音频wav文件
  • 原文地址:https://www.cnblogs.com/sliencer/p/3150521.html
Copyright © 2020-2023  润新知