当我使用TabControl对象开发WPF应用程序时遇到问题。我试图调试并发现问题,最后我明白了,但是我没有找到任何解决方法。这里是一些解释:为什么我的样式的ToggleButton不能在TabControl的第二个选项卡上工作?
我用这个数据网格过滤库(here is a codeproject url),这是最好的(从我的角度来看)。我想用谷歌材质设计主题对其进行定制,并更改一些图形功能,例如在数据网格的第一个标签页眉中使用切换按钮来隐藏/显示过滤选项。
我创建了一个用户控件,并在其中放置了我的自定义数据网格。然后我将该控件嵌入到tabItem中。当我将此控件设置为第一个tabItem时,一切正常。但是,当我将用户控件更改为其他tabItem时,切换按钮不起作用。
这里是我的主窗口的XAML代码,没有工作:
<TabControl x:Name="tabControl">
<TabItem Header="1'st Tab">
<ContentControl DataContext="{Binding Path=DataContext, RelativeSource={RelativeSource AncestorType={x:Type Window}}}">
<Button Content="Do no thing"></Button>
</ContentControl>
</TabItem>
<TabItem Header="2'nd Tab">
<ContentControl DataContext="{Binding Path=DataContext, RelativeSource={RelativeSource AncestorType={x:Type Window}}}">
<local:UserControl1/>
</ContentControl>
</TabItem>
</TabControl>
需要注意的是,如果我改变的TabItems的顺序,效果很好。有没有人有建议如何解决这个问题? Here is my sample project code on Github
编辑:今天,我测试了“WPF督察”应用程序查找视觉和逻辑树的结构。这种行为太奇怪了,因为当我将“WPF Inspector”附加到我的应用程序中时,所有事情都开始奏效。下面GIF是我做过什么:
欢迎SO!我改变了你的问题的标题。请参阅[帮助页面](http://stackoverflow.com/help/tagging)以获知是否应在问题标题中使用标签。您还应该向我们提供[mcve],而不仅仅是发布指向外部代码的链接。 – dymanoid
这两个代码没有区别。您应该只更改TabControl中TabItem的顺序。不过,我会添加一些代码行。我很感激你的报价。 – Alireza