我尝试访问一个单独的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的绑定?
有人有建议吗?会很棒:))
答案 0 :(得分:0)
仅供参考,您要查找的术语是“名称范围”,并且无法引用另一个名称范围中定义的元素。可以说,不应该允许这样做。
不要将一个UI元素绑定到另一个UI元素,而是考虑将它们绑定到公共属性,可以在视图模型中,在一些常见的祖先元素上,也可以通过依赖属性继承。