簡體   English   中英

為什么我的樣式ToggleButton不能在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就是我做的:

奇怪的行為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM