2012-03-15 9 views
0

itemscontrolのアイテムとしてボタンがあります。ボタンをクリックすると、ボタンをクリックすると、そのボタンが再度クリックされるまで強調表示されます(ischeckedプロパティ)。私の問題は、このボタンを相互に排他的にチェックする必要があることです。いつでも、ハイライト表示されるボタンは1つだけにしてください。私はitemscontrolを使用しています。なぜなら、割り当てられた幅まで水平に塗りつぶし、次の行に進むようにボタンをラップすることができるからです。itemscontrolの相互に排他的なボタン

<ItemsControl ItemsSource="{Binding Path=NewItemsList,ElementName=newitemcontrol}">    
      <ItemsControl.ItemsPanel> 
       <ItemsPanelTemplate>      
        <WrapPanel Orientation="Horizontal" >      
         </WrapPanel> 
        </ItemsPanelTemplate> 
       </ItemsControl.ItemsPanel>    
       <ItemsControl.ItemTemplate> 
        <DataTemplate> 
          <dc:ButtonDropDown Name="SubItems" Width="120" 
        Height="120" ItemsSource="{Binding Path=DataContext.Children, RelativeSource={RelativeSource Mode=Self}}" Header="{Binding Path=DataContext.DisplayName, RelativeSource={RelativeSource Mode=Self}}" Command="{Binding Path=ChangeSubItem, ElementName=newitemcontrol}" CommandParameter="{Binding DataContext, RelativeSource={RelativeSource Mode=Self}}"  ImageSource="{Binding Path=DataContext.ImageUri, RelativeSource={RelativeSource Mode=Self}}" ImagePosition="Top"   IsCheckable="True" >       


          </dc:ButtonDropDown> 
        </DataTemplate> 
        </ItemsControl.ItemTemplate> 
        </ItemsControl> 
+0

トグルボタンを試す – Phil

+4

これは、GroupNameプロパティを使用してRadioButtonで行うことができます。私はdcについて知りません:ButtonDropDown –

+0

また、項目が静的要素である場合は( 'ItemsControl'ではなく)' Panel'を使用することができます –

答えて

0

以下のXAMLは、あなたの回答をありがとうございました。コンテナの内側にドロップダウンボタンを使用する必要があります(私はラジオボタンについて知っています)。私がこれを解決した方法は、itemscontrolの代わりにlistboxを使うことです。リストボックスは単一selectでなければならず、ドロップダウンボタンのischeckedプロパティをlistboxitemのisselectedプロパティにバインドする必要があります。

関連する問題