2011-08-04 33 views
2

查看WPF控件的繼承圖我注意到TreeView控件出乎意料的東西。其他控件允許用戶選擇從Selector或MultiSelector基類繼承。這是有道理的,因爲Selector類將選擇功能添加到基礎ItemsControl類。所以我期望TreeView同樣會繼承同一個類,但事實並非如此。它直接從ItemsControl繼承。任何想法爲什麼?爲什麼WPF TreeView控件繼承自ItemsControl而不是Selector?

回答

4

這是因爲樹項目的選擇必須沿着整個層次進行管理,而不僅僅是沿着根級項目進行管理。 Selector類跟蹤平面列表。事實是,必須以特定的方式處理層次結構。

+0

好吧,據我看到的問題選擇器只會添加屬性來查詢選定的項目,這就是你將在TreeView,選定的項目。 –

+0

@SoMoS:我不清楚你的觀點。考慮一個基本的TreeView應用程序,其中的項目必須在IsSelected屬性上進行樣式化。現在,如果選擇器是在根級別實現的,那麼如何映射模板層次結構中的屬性? –