有沒有一種簡單的方法來禁用ListBox控件上的UI虛擬化? 我試圖使用「FindName()」方法在ListBox控件中找到控件,但是在控件明顯不在Web瀏覽器窗口中的情況下,它找不到控件。我幾乎肯定是UI虛擬化的罪魁禍首。 當控件從頁面滾動時,不再通過「FindName()」檢索成功。Silverlight:禁用UI虛擬化?
第二個我滾動回到屏幕上,它成功返回控件。
這是這個問題的延伸:與編碼例
這背後,我試圖檢索控件的代碼
更新。 「DynamicTagFormFields」是ListBox控件。
textField tf = DynamicTagFormFields.FindName(s.KeyValue) as textField;
這將返回一個有效的「文本框」對象如果我試圖檢索實際文本框控件是屏幕到最終用戶上可見。 但是,如果我使用ListBox的垂直滾動條將textField控件拖出視圖,然後再次強制該過程,上述代碼將返回null。
這是ListBox的XAML:
DynamicTagFormFields.Items.Add(textFieldControl);
我認爲我們實際上發現這有點難以吞嚥,因爲您尚未提供任何可用於單獨重現問題的簡單Xaml。當你說「滾動頁面」時,滾動的是什麼?瀏覽器滾動器? ScrollViewer控件?你所描述的將會破壞很多難以接受的東西。我們需要更多的細節和良好的Xaml repro。 – AnthonyWJones
更新了代碼示例 –