首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从TabItem HeaderTemplate访问TabItem中的checkbox控件

如何从TabItem HeaderTemplate访问TabItem中的checkbox控件
EN

Stack Overflow用户
提问于 2014-02-27 21:01:37
回答 2查看 849关注 0票数 0

我有tabItem,里面包含一个CheckBox.Tab,我正在绑定一个ListBox。根据复选框选中状态,我需要控制ListBox的可见性。我通过使用Boolean to Visibility converter.But将IsChecked属性绑定到ListBox的Visiblity属性,它不会改变Listbox的状态。

如何获取控制状态?

在这里我附加了我的代码。

代码语言:javascript
复制
<TabItem  Header="Trigger">
    <TabItem.HeaderTemplate>
        <DataTemplate>
            <DockPanel>
                <CheckBox x:Name="ui_chbTrigger" IsChecked="{Binding SelectedUiSeries.UiTriggerParameters.HasEcgPulsingConfig, Mode=TwoWay}"/>
                <Label Content="Trigger" HorizontalAlignment="Center" FontSize="18" FontWeight="Bold"/>
            </DockPanel>
        </DataTemplate>
    </TabItem.HeaderTemplate>

    <Grid >
        <ListBox Grid.Row="1" Style="{StaticResource S_ListBoxParameterScan}"
                 ItemContainerStyle="{StaticResource S_ListBoxItemScanParameter}"
            Visibility="{Binding Path=IsChecked, Converter={StaticResource BooleanToVisiblityConverter}, ElementName=ui_chbTrigger}">
            <ListBoxItem>
                <util:HeaderComboBox Style="{DynamicResource S_HeaderComboBoxParameter}" Header="Trigger Type"
                                 ItemsSource="{helpers:EnumBindingHelper {x:Type commonDefs:TriggerType}}"
                                 SelectedItem="{Binding SelectedUiSeries.UiTriggerParameters.TriggerType,Mode=TwoWay}"/>
            </ListBoxItem>
        </ListBox>
    </Grid >
</TabItem>
EN

回答 2

Stack Overflow用户

发布于 2014-02-27 21:48:58

如何从模板引用控件( checkbox在HeaderTemplate中)

您可以按如下方式更改代码

代码语言:javascript
复制
      <TabControl>
        <TabItem>
            <TabItem.Header>
                <DockPanel>
                    <CheckBox x:Name="ui_chbTrigger"/>
                </DockPanel>
            </TabItem.Header>

            <Grid >
                <ListBox Visibility="{Binding Path=IsChecked, Converter={StaticResource BooleanToVisiblityConverter}, ElementName=ui_chbTrigger}">
                    <ListBoxItem>
                       <TextBlock>1</TextBlock>
                    </ListBoxItem>
                    <ListBoxItem>
                        <TextBlock>2</TextBlock>
                    </ListBoxItem>
                </ListBox>
            </Grid >
        </TabItem>
    </TabControl>

如果需要,您可以随意进行进一步的更改。

票数 0
EN

Stack Overflow用户

发布于 2014-02-27 23:47:23

您的CheckBox已绑定到SelectedUiSeries.UiTriggerParameters.HasEcgPulsingConfig

与尝试进行ElementName-based绑定不同,只需将其他UI元素绑定到ViewModel中的相同属性:

代码语言:javascript
复制
  <ListBox Visibility="{Binding Path=SelectedUiSeries.UiTriggerParameters.HasEcgPulsingConfig,
                                Converter={StaticResource BooleanToVisiblityConverter}}"/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22069333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档