2011-08-14 17 views
2

次の配列をバリューコンバータのパラメータとして使用しています。私は "params2"がArrayExtensionとして渡され、 "params1"が単純なTextBlock []配列として渡される理由を理解できません。XAML配列の問題

<Window.Resources> 
    <x:Array Type="TextBlock" x:Key="params1"> 
     <TextBlock Text="{x:Static local:Constants.MyDir}"></TextBlock> 
     <TextBlock>25</TextBlock> 
    </x:Array> 
</Window.Resources> 


<TabItem.Resources> 
    <x:Array Type="TextBlock" x:Key="params2"> 
     <TextBlock Text="{x:Static local:Constants.MyDir}"></TextBlock> 
     <TextBlock>55</TextBlock> 
    </x:Array> 
</TabItem.Resources> 

画像ビューアXAML:

<Window x:Class="TotalViewer.ImageViewerWindow"   
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:TotalViewer" 
    Title="ImageViewerWindow" Name="ImageViewerWindow1"> 

    <Window.Resources> 
     <x:Array Type="TextBlock" x:Key="params1"> 
      <TextBlock Text="{x:Static local:Constants.MyDir}"></TextBlock> 
      <TextBlock>25</TextBlock> 
     </x:Array> 
    </Window.Resources> 

    <Grid> 
     <Image Source="{Binding ElementName=ImageViewerWindow1, Path=ImagePath, 
      Converter={StaticResource ImageConverter}, 
      ConverterParameter={StaticResource params1}}"/> 
    </Grid> 
</Window> 
+0

ArrayExtension.Itemsにコンバーターで期待している2つの要素が含まれているかどうかをコンバーターで確認しようとしましたか? – sll

+0

はい、私は2つのアイテムを手に入れます。 –

+0

あなたは配列がコンバータで渡されたXAMLを投稿できますか? – sll

答えて

0

まあ、私はこの部分の作業を取得する必要があるので、私はちょっと一瞬あきらめました。コンバーターでは、パラメーターがArrayExtensionまたはTextBlock []のいずれかであるかどうかをテストします。 ArrayExtensionの場合は、TextBlock []に変換されます。