2017-10-13 117 views
1

我想为数据网格使用内联数据源,显然XAML支持使用x:Array的内建类型的数组,但是当我试图声明嵌套数组时,尝试了一些方法,但他们都没有工作。在xaml中声明数组的数组

<x:Array Type="{x:Type Array}"> 
    <x:Array Type="{x:Type x:String}"> 
     <x:String>aaa1</x:String> 
     <x:String>aaa2</x:String> 
    </x:Array> 
    <x:Array Type="{x:Type x:String}"> 
     <x:String>aaa9</x:String> 
     <x:String>aaa10</x:String> 
    </x:Array> 
</x:Array> 

这不会工作之一:

<x:Array Type="{x:Type {x:Array Type={x:Type String}}"> 
+0

“类型参数值并不需要使用X :类型标记扩展名;“ 你有没有试过编写'Type =“{x:Array}”'? – rebecca

+0

@Rebecca是的,我试了一下,它编译好了,但没有在列表视图中显示 – fluter

回答

3

试试这个:

<x:Array xmlns:s="clr-namespace:System;assembly=mscorlib" x:Key="array" Type="{x:Type s:Array}"> 
    <x:Array Type="{x:Type s:String}"> 
     <s:String>aaa1</s:String> 
     <s:String>aaa2</s:String> 
    </x:Array> 
    <x:Array Type="{x:Type s:String}"> 
     <s:String>aaa9</s:String> 
     <s:String>aaa10</s:String> 
    </x:Array> 
</x:Array> 

使用范例:

<ItemsControl ItemsSource="{StaticResource array}"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <ItemsControl ItemsSource="{Binding}"> 
       <ItemsControl.ItemTemplate> 
        <DataTemplate> 
         <TextBlock Text="{Binding}" /> 
        </DataTemplate> 
       </ItemsControl.ItemTemplate> 
      </ItemsControl> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 
+0

这不会编译:( – fluter

+2

它肯定会 - 在WPF中,哪个是标记您的问题的标记 – mm8

+0

好吧,vs只是失败的值 – fluter