ToggleButton Проверенная обработка событий - PullRequest
1 голос
/ 12 августа 2010

У меня есть кнопки ToggleButtons, которые динамически создаются на основе моего источника данных.Я хотел бы, чтобы только одна кнопка переключалась в тот момент, когда пользователь нажимает один.Как мне это сделать?

<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}">

1 Ответ

0 голосов
/ 12 августа 2010

Полагаю, вы имеете в виду «только один» вместо «только когда». В этом случае вы можете использовать RadioButton (который является производным от ToggleButton) и установить GroupName в _MiniDrawerButton в вашем ItemTemplate. Похоже, вы, вероятно, уже используете пользовательский шаблон ControlTemplate, поэтому вы можете использовать его для RadioButton, просто изменив Style и ControlTemplate TargetTypes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...