2010-09-15 47 views
5

我需要在WPF TreeView中實現搜索功能(基本上我需要記住最後一個用戶選擇)。我嘗試了各種方法,但沒有任何效果,因爲我的TreeView中啓用了virtualization,並且僅當父節點展開(延遲加載)時才加載子節點。需要使用虛擬化和按需加載WPF TreeView搜索示例

任何人都知道樣本有三件事(虛擬化,按需加載和搜索)一起實施?

回答

3

看看this MSDN論壇主題,來自MS的Bob解釋了實現此功能的問題。

的原因是 VirtualizingStackPanel嘗試生成 一個項目顯示,但它有一個 發電機已經在項目中 生成展開的項目(在 OnTreeNodeExpanded事件處理程序)。它 發生與兩個發電機衝突。 VirtualizingStackPanel可以在運行時產生 所需的項目,也可以在BringIndexIntoView 方法中產生它們 。 StartAt方法 的代碼是檢查生成器,如果它不是 null,拋出異常「不能調用 StartAt當內容生成在 進度」。因此,樣本將 中的所有項目填充到 InitializeComponent()中的綁定源中,並且讓 BringIndexIntoView方法爲該項目生成 容器。

重現問題的示例也附加在該線程中。

所以目前似乎沒有解決方法:(

+1

您是否設法找到解決方法?我有同樣的問題 – 2015-09-14 16:33:32