【问题标题】:ToggleButton Checked Event HandlingToggleButton 检查事件处理
【发布时间】:2011-03-28 15:55:27
【问题描述】:

我有基于我的数据源动态创建的切换按钮。当用户单击一个时,我希望一次只检查一个切换按钮。我怎样才能做到这一点?

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

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    我假设您的意思是“仅一个”而不是“仅当”。在这种情况下,您可以改用 RadioButton(派生自 ToggleButton)并在 ItemTemplate 中的 _MiniDrawerButton 上设置 GroupName。看起来您可能已经在使用自定义 ControlTemplate,因此您可以通过更改 Style 和 ControlTemplate TargetTypes 为 RadioButton 使用相同的模板。

    【讨论】:

    • 您能提供一个代码示例吗?我在实施这个想法时遇到了麻烦。
    猜你喜欢
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    • 2010-12-19
    • 1970-01-01
    • 2011-06-03
    • 2013-03-17
    相关资源
    最近更新 更多