2012-03-11 138 views
0

我的WPF應用程序有一個帶有4個TabItem的TabControl。 每個TabItem都有一個與GridView不同的ListView作爲View。 TabControl的ItemContainerStyle使用'普通'ContentPresenter和一個TextBox定義一個自定義標題。當TabItem內容更改時更新TabItemHeader

如何更新每個TabItem標題的TextBox以顯示ListView.ItemSource更改時每個LisView的項目數? ItemSource週期性地從代碼後面的線程中異步設置。

RunOnUI(() => { firstTabList.ItemsSource = itemsFirstList; });

感謝

+0

你如何設置ItemsSource?你的方法是什麼 - MVVM或簡單的事件處理程序在代碼隱藏? – EvAlex 2012-03-11 07:16:45

+0

我剛剛回答了一個類似的問題:http://stackoverflow.com/questions/9547461/how-to-create-tab-able-content-in-wpf-c/9648672#9648672。這可能有幫助。如果沒有,發佈一些代碼。 – Phil 2012-03-11 08:41:13

+0

@EvAlex:我正在使用代碼隱藏功能。 – 2012-03-11 18:09:35

回答

0

如果你使用後面的代碼,那麼你能說出你的的TabItem

<TabItem x:Name="tabItem1" ...> 

,然後設置標題,當你更新的ItemsSource

RunOnUI(()=>{ 
    firstTabList.ItemsSource = itemsFirstList; 
    tabItem1.Header = string.Format("Header: {0}", itemsFirstList.Count); 
} 
+0

是的,它解決了這個問題。在另一個上下文中,是否可以通過XAML綁定來完成,使用Converter接收列表並返回項目數量? – 2012-03-11 18:08:46

+0

您不需要轉換器,您需要一個支持INotifyPropertyChanged的視圖模型。你可以很容易地調整我指出的例子。 – Phil 2012-03-11 18:57:45