【问题标题】:DataTrigger Binding to a ToggleButton within another namespaceDataTrigger 绑定到另一个命名空间中的 ToggleButton
【发布时间】:2014-12-31 19:42:27
【问题描述】:

我尝试访问单独的 UserControl 中的 ToggleButton 来触发 DockPanel.Style DataTrigger。

当 ToggleButton 和 DockPanel 都在同一个命名空间中时,我是这样使它工作的:

<ToggleButton x:Name="OneToggleButton"
          Content="Click me..." />

<DockPanel>
  <DockPanel.Style>
    <Style>
      <Setter Property="UIElement.Visibility" 
              Value="Visible"/>
      <Style.Triggers>
        <DataTrigger Binding="{Binding IsChecked, 
                     ElementName=DetailsBookToggleButton}" 
                     Value="False">
          <Setter Property="UIElement.Visibility" 
                  Value="Collapsed"/>
        </DataTrigger>
      </Style.Triggers>
    </Style>
  </DockPanel.Style>

  <TextBlock DockPanel.Dock="Top" Text="..." />

</DockPanel>

但是现在当我将 ToggleButton 移动到另一个文件(其他命名空间)中时,它不再起作用了。 ElementName (据我了解)仅适用于同一文件中的元素。 那么如何在另一个文件中管理对我的 ToggleButton 的 IsChecked 的绑定?

有人有建议吗?会很棒:)

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

    仅供参考,您要查找的术语是“名称范围”,并且无法引用在另一个名称范围中定义的元素。可以说,您不应该被允许这样做。

    与其将一个 UI 元素绑定到另一个,不如考虑将它们都绑定到一个公共属性,或者在您的视图模型中,在某个公共祖先元素上,或者通过依赖属性继承。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-27
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 2018-01-05
      • 1970-01-01
      相关资源
      最近更新 更多