2010-08-11 68 views
1

我有基於我的數據源動態創建的ToggleButtons。我希望在用戶點擊某個按鈕時只檢查一次togglebutton。我怎樣才能做到這一點?ToggleButton Checked Event Handling

<UserControl.Resources> 

    <ItemsPanelTemplate x:Key="HorizontalMiniDrawerList"> 
     <StackPanel Orientation="Horizontal"/> 
    </ItemsPanelTemplate> 

    <DataTemplate x:Key="MiniDrawerRowTemplate"> 
     <ToggleButton x:Name="_MiniDrawerButton" Width="60" Height="85" Style="{DynamicResource MiniDrawerButtonWhite}" Checked="_MiniDrawerButton_Checked" > 
     </ToggleButton> 
     <DataTemplate.Triggers> 
      <DataTrigger Binding="{Binding Width}" Value="3"> 
       <Setter TargetName="_MiniDrawerButton" Property="Width" Value="185"/> 
      </DataTrigger>         

     </DataTemplate.Triggers> 
    </DataTemplate> 

    <DataTemplate x:Key="MiniDrawerListItemTemplate"> 
     <ListBox SelectionMode="Multiple" Background="#00000000" BorderThickness="0" Width="500" 
      ItemsPanel="{StaticResource HorizontalMiniDrawerList}" 
      ItemTemplate="{StaticResource MiniDrawerRowTemplate}" 
      ItemsSource="{Binding Row}" > 

     </ListBox> 
    </DataTemplate>   

</UserControl.Resources> 

<Grid Background="{DynamicResource ListBackgroundColor}" > 

    <ListBox x:Name="_MiniDrawerRows" BorderThickness="0" Background="Transparent" Margin="107,84,225,217" ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
      ItemsSource="{Binding Path=MiniDrawerRows, diagnostics:PresentationTraceSources.TraceLevel=High}" 
      ItemTemplate="{StaticResource MiniDrawerListItemTemplate}" >     
    </ListBox>  

</Grid> 

更新:不要使用一個切換按鈕的我用一個單選按鈕,改變的單選按鈕的樣式看起來像一個切換按鈕。

<Style x:Key="MiniDrawerButtonWhiteRadioToToggleButton" BasedOn="{StaticResource {x:Type ToggleButton}}" TargetType="{x:Type RadioButton}"> 

回答

0

我假設你的意思是「只有一個」而不是「只有當」。在這種情況下,您可以使用RadioButton(它是從ToggleButton派生的),並在ItemTemplate中的_MiniDrawerButton上設置一個GroupName。看起來您可能已經在使用自定義的ControlTemplate,因此只需更改Style和ControlTemplate TargetTypes即可使用同一個RadioButton。

+0

你能提供一個代碼示例嗎?我在執行這個想法時遇到了麻煩。 – Robert 2010-08-12 14:25:17

+0

沒關係,想通了 – Robert 2010-08-12 16:32:12