![](/img/trans.png)
[英]TextBox Binding doesn't work when switching Tab in TabControl
[英]Why doesn't my styled ToggleButton work on the second tab of a TabControl?
我在使用TabControl對象開發WPF應用程序時遇到了問題。 我試圖調試並找到問題,最后我得到了它,但我沒有找到任何解決方法。 這是一些解釋:
我使用了這個數據網格過濾庫( 這里是一個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的順序,它可以正常工作。 有沒有人有如何解決這個問題的建議? 這是我在Github上的示例項目代碼
編輯:今天,我用“WPF Inspector”測試我的應用程序,找到視覺和邏輯樹的結構。 這種行為太奇怪了,因為當我將“WPF Inspector”附加到我的應用程序時,一切都開始起作用了。 以下GIF就是我做的:
對數據對象使用ContentControl
,在您的情況下,它是數據上下文,您將Content
屬性綁定到Data-Object並指定DataTemplate
屬性。 在這種情況下, DataTemplate
的內容將其DataContext
設置為您的Data-Object。
這是一個工作樣本:
<TabControl x:Name="tabControl">
<TabItem Header="1'st Tab">
<ContentControl Content="{Binding .}">
<ContentControl.ContentTemplate>
<DataTemplate>
<Button Content="Do no thing"></Button>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
</TabItem>
<TabItem Header="2'nd Tab">
<ContentControl Content="{Binding .}">
<ContentControl.ContentTemplate>
<DataTemplate>
<local:UserControl1/>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
</TabItem>
</TabControl>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.