我需要迭代ListBox控件的VirtualizingStackPanel才能獲得ListBoxItem.RenderSize
值。在VB.NET代碼的C#中,這怎麼可能完成?訪問Items列表框中的Presenter項目
背景:
我在WPF第三方控件庫,這顯然有缺陷(或「特徵」)與它的措施()算法的工作。相反,它會執行非標準的附屬依賴屬性來調整其中一個框架的大小。
爲了解決這個問題,我重寫了度量並將自己的值提供給附加屬性,但值正被視覺樹中的干預值所佔用。但是,我的ListBox的Items屬性返回viewmodels,它不包含大小信息。視圖模型的模板也不能自動調整大小。
您可以通過調用[ContainerFromItem](http://msdn.microsoft.com/en-us/library/system.windows.controls.itemcontainergenerator.containerfromitem.aspx)來訪問項目的容器(即ListBoxItem) )ListBox的[ItemContainerGenerator]方法(http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.itemcontainergenerator.aspx) – Clemens
在ListBox.Items的ViewModel上調用該函數'收集返回'沒什麼' –
那麼,你不知怎的做錯了。 'ContainerFromItem'將爲您提供包含項目的'ListBoxItem',前提是該項目包含在ListBox的Items集合中,並且相應的ListBoxItem已經創建。可能由於虛擬化,ListBoxItem尚未創建。 – Clemens