Есть ли простой способ отключить виртуализацию пользовательского интерфейса в элементе управления ListBox?Я пытаюсь найти элемент управления в элементе управления ListBox с помощью метода «FindName ()», но в случае, если элемент управления явно находится вне окна веб-браузера, он не находит элемент управления.Я почти уверен, что виновником является виртуализация пользовательского интерфейса.Поскольку элемент управления прокручивается со страницы, он больше не извлекается успешно с помощью «FindName ()».
Когда я прокручиваю его обратно на экран, он успешно возвращает элемент управления.
Это расширение этого вопроса:
Silverlight: FrameworkElement.FindName () не находит элемент управления, когда он не «виден» в окне браузера
Обновление с примером кодирования
Это код, на котором я пытаюсь получить элемент управления.«DynamicTagFormFields» - это элемент управления ListBox.
textField tf = DynamicTagFormFields.FindName(s.KeyValue) as textField;
Возвращает действительный объект «textField», если фактический элемент управления textField, который я пытаюсь получить, отображается на экране для конечного пользователя.Однако, если я прокручиваю элемент управления textField вне поля зрения, используя вертикальную полосу прокрутки ListBox, а затем снова запускаю процесс, вышеупомянутый код вернет ноль.
Это XAML ListBox:
<ListBox x:Name="DynamicTagFormFields" Margin="0" Style="{StaticResource ListBoxStyle1}" ItemContainerStyle="{StaticResource ListBoxItemStyle4}" d:LayoutOverrides="Height" Grid.Row="2" IsTabStop="False" TabNavigation="Local" ScrollViewer.HorizontalScrollBarVisibility="Disabled"/>
Объект textField динамически добавляется в ListBox программным способом со следующим кодом:
DynamicTagFormFields.Items.Add(textFieldControl);