小编dav*_*rne的帖子

为什么std :: vector :: data()中没有使用指针typedef?

在std :: vector的API中有一些typedef和许多返回这些typedef的函数.

例如

reference operator[](size_type n);
Run Code Online (Sandbox Code Playgroud)

哪里referencesize_type是typedef.

有一个typedef pointer,它从它的allocator模板参数中获取.为什么函数签名是data()这样的:

T* data() noexcept;
Run Code Online (Sandbox Code Playgroud)

而不是:

pointer data() noexcept;
Run Code Online (Sandbox Code Playgroud)

这背后有什么理由吗?也是为什么它T*而不是value_type*.

如果你想检查它是我所拥有的标准的第23.3.6.4节.

c++ language-lawyer c++11

14
推荐指数
1
解决办法
506
查看次数

你能否将GroupBox的可见性绑定到它的孩子的可见性?

我有一个问题试图让GroupBox崩溃.我想要一个GroupBox,如果它的所有子节点都被折叠,它将崩溃.

我已经设法通过对属性进行多重绑定来实现这一点,如下所示.

<StackPanel>
    <GroupBox>
      <GroupBox.Visibility>
        <MultiBinding 
          Converter="{StaticResource multiBoolOrToVis}"
          ConverterParameter="{x:Static Visibility.Collapsed}"
        >
          <Binding Path="a_visible"/>
          <Binding Path="b_visible"/>
        </MultiBinding>
      </GroupBox.Visibility>
        <GroupBox.Header>
        <Label Content="GroupBox"/>
      </GroupBox.Header>
      <StackPanel>
        <Label 
          Content="A"
          Visibility="{Binding Path=a_visible, Converter={StaticResource boolToVis}}"
        />
        <Label 
          Content="B"
          Visibility="{Binding Path=b_visible, Converter={StaticResource boolToVis}}"
        />
      </StackPanel>
    </GroupBox>
    <Grid>
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
      </Grid.ColumnDefinitions>
      <CheckBox 
        Content="A Visible"
        Grid.Column="0"
        Grid.Row="1"
        IsChecked="{Binding Path=a_visible, Mode=TwoWay}"
      />
      <CheckBox 
        Content="B Visible"
        Grid.Column="1"
        Grid.Row="1"
        IsChecked="{Binding Path=b_visible, Mode=TwoWay}"
      />
    </Grid>
  </StackPanel>
Run Code Online (Sandbox Code Playgroud)

这个问题是我们希望能够多次执行此操作而不必担心不使用绑定.所以我的问题是有什么方法可以做到这一点,最好是一种风格.另一个要求是它必须是xaml而不是代码.

所以我理想的答案是风格,所以我可以在我的xaml中使用以下内容.

<StackPanel>
    <GroupBox Style="ChildrenVisibilityStyle">
        <GroupBox.Header>
        <Label Content="GroupBox"/>
      </GroupBox.Header>
      <StackPanel>
        <Label 
          Content="A"
          Visibility="{Binding Path=a_visible, Converter={StaticResource …
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf xaml

5
推荐指数
1
解决办法
2625
查看次数

标签 统计

c# ×1

c++ ×1

c++11 ×1

data-binding ×1

language-lawyer ×1

wpf ×1

xaml ×1