2009-06-01 8 views
5

したがって、私はContentControlとして使用しているStackPanelを持っています。私は、バインドしているデータに基づいてボタンを生成したいと思う場所がありますが、それはすべてうまくいきますが、現在起こっているように、垂直方向ではなく水平方向にボタンを配置したいと考えています。ここではスクリーンショットです:StackPanelをContentControl(WPF)として使用する

<StackPanel Name="wpReleaseButtons" Orientation="Horizontal" Grid.Row="2"> 
    <ItemsControl IsTabStop="False" ItemsSource="{Binding Path=BranchCommands}"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Button Tag="{Binding}" Padding="3"> 
        <TextBlock Text="{Binding Path=DisplayValue}" /> 
       </Button> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 
</StackPanel> 

ない私がここで間違ってやっているのかわから:

alt text

そして、ここでは私のContentTemplate記述からコードがあります。どんな情報でも大歓迎です。ありがとう!それが必要として

答えて

9

私はItemsControlが垂直方向のボタンが表示されているものであるように見えると言うでしょう。私は少し間違っているのかもしれません

<ItemsControl IsTabStop="False" ItemsSource="{Binding Path=BranchCommands}"> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Button Tag="{Binding}" Padding="3"> 
       <TextBlock Text="{Binding Path=DisplayValue}" /> 
      </Button> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel Orientation="Horizontal"/> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
</ItemsControl> 

:あなたはItemsControlのボタンが横にな​​りたい場合は、その後、あなたはあなたのコードの中で持っているもののようなItemsControlItemsPanelTemplateではなく、他の方法ラウンドであることをStackPanelを必要としますItemsControl.ItemsPanelビット私は

編集...でそれをテストするために、任意のデータ持っていないよう:Beaの参照に加えてを、Dr WPFによっていくつかの良いものがあります。

+0

これはそれをした!答えをありがとう、私はBeaのサイトにブックマークしました。みんな、ありがとう!これは私にかなり苦労し始めた、笑。 –

3

私は(それは私の会社のファイアウォールによってブロックされています)自分のイメージを見ることができないが、ここで私はとにかく行く...

あなたの「方向= 『横』」は、おそらく働いている:それだけ含まれています1つの子要素、ItemsControl代わりに、ControlTemplateにOrientation = "Horizo​​ntal"のStackPanelが含まれているItemsControl用のControlTemplateを作成してみてください。

希望すると便利です。

編集:

もう一度、BEAが答え/例で伝わってきます!

http://bea.stollnitz.com/blog/?p=10

+0

+1を参照してください。 –