2010-02-21 56 views
1

我需要編寫一個應該只採用某種類型的子控件的控件。在功能上,它像一個選擇器一樣工作,我可以選擇/激活其子元素,但似乎我無法從選擇器派生,因爲ItemsControl可以接受任何類型的子元素(對象)。我真的想在這裏有編譯時的類型安全。因此,添加錯誤類型的子項時拋出異常不是一種選擇。只能採取某種類型的子元素的選擇器?

這個約束似乎是必要的,因爲父控件需要依賴某些屬性並在其子節點中運行。還有一些孩子與父母直接溝通。

這是怎麼回事,通常在WPF中處理。

回答

1

ItemsControl將您的孩子包裹在您選擇的物品容器類型中。因此,你知道你的ItemsControl的孩子將永遠是那種類型。例如,ListBox es總是有ListBoxItem作爲孩子。

+0

如何爲我的Selector派生類選擇項目容器類型? – bitbonk 2010-02-21 20:50:27

+0

根據這篇文章:http://drwpf.com/blog/2008/07/20/itemscontrol-g-is-for-generator/它必須是GetContainerForItemOverride();) – bitbonk 2010-02-21 21:37:57

相關問題