2017-10-13 115 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