2012-03-08 35 views

回答

6

這個問題經常被問到,答案總是:不要這樣做。

從理論上講,你不應該需要TabItem實例,因爲你要捆綁你需要修改的一切。 (理論上你也可以使用ItemContainerGenerator得到實例)

+0

我有tabcontrol綁定,使一些tabitems的可見性可能切換到摺疊。如果這是選定的選項卡,我最終會看到一個選項卡控件,看起來沒有選中選項卡。我想永遠不會在這種情況下結束。我會看看我能否想出更具約束力的解決方案。 – 2012-03-08 21:08:36

+0

如果它是您需要的標籤內容中的控件,該怎麼辦?例如,選項卡2有一個列表框控件,我要抓取選定的項目?當基於另一個綁定集合生成選項卡時,我無法將選定項綁定到視圖模型上的集合。或者我可以嗎? – Sinaesthetic 2015-09-15 02:43:24

+0

@Sinaesthetic:您通常通過將單個項目的「IsSelected」屬性綁定到項目的模型/視圖模型來綁定選定的項目,然後您只需通過綁定屬性過濾集合。 – 2015-09-16 12:27:05

1

很久以前我在wpf中有一個和treeview類似的問題。我用ItemContainerGenerator解決了它。如果你想你可以看看我的解決方案,也許它可以幫助你解決你的問題:How to select a databound TreeViewItem?

但是我想H.B.是正確的:「[..]你不應該需要TabItem實例,因爲你應該綁定你需要的所有東西[..]」

6

例如,如果您需要獲取與SelectedItem相關的實際TabItem (這是一個綁定的對象)你可以使用ItemContainerGenerator HB提到

var tabItem = this.ItemContainerGenerator.ContainerFromItem(selectedObject); 
+3

謝謝你真的回答這個問題,而不是說他們沒有人應該這樣做。在我的情況下,我想在用戶對其中一個選項卡進行更改時禁用其他選項卡(不禁用內容)。 – 2015-11-05 18:56:54

相關問題