2012-10-18 40 views
1

好的,我知道有很多這樣的問題,但他們都沒有幫助我。在代碼中綁定屬性

所以我有一個屬性,我不想用來設置TabItem的可見性(所以我不想更新屬性)。

問題只是綁定不起作用,我不知道爲什麼? VS輸出沒有給我任何線索。

總之,這裏的XAML的代碼示例:

<Window x:Class="WpfTestApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Window.Resources> 
     <BooleanToVisibilityConverter x:Key="BoolToVis" /> 
    </Window.Resources> 
    <Grid> 
     <TabControl> 
      <TabItem Header="tabItem1" /> 
      <TabItem Header="Hide me!" Visibility="{Binding ShowTab, Converter={StaticResource BoolToVis}}" /> 
     </TabControl> 
    </Grid> 
</Window> 

而這裏的的.cs

public bool ShowTab { get; set; } 

    public MainWindow() 
    { 
     ShowTab = false; 
     InitializeComponent(); 
    } 

我缺少什麼?是否應該有某種類型的DataContext連接?或者是代碼某種靜態資源?爲什麼我沒有從VisualStudio獲得任何線索?

+0

其中是* BoolToVis *轉換器定義,並且* _loadUserGroups *定義在哪裏? – Tigran

+0

BoolToVis在資源中定義,_loadUserGroups可能是一個錯字,他編輯它;) – Sisyphe

回答

2

Add DataContext = this;你的主窗口構造

public MainWindow() 
    { 
     InitializeComponent(); 
     DataContext = this; 
     ShowTab = false; 
    } 

請注意,如果您修改ShowTab您的UI將不會收到任何通知。

+3

在'VS - >選項 - >調試 - >輸出窗口 - > WPF跟蹤設置',如果你有'警告'級別的所有內容最少,VS會告訴你關於丟失的綁定,而不是默默地忽略它(這是默認的)。對丟失/不匹配的數據上下文和綁定非常有幫助。 – Maverik