Tag: itemcontainergenerator

当VirtualizingStackPanel.IsVirtualizing =“False”时,ItemContainerGenerator.ContainerFromItem()返回null

我在这个问题上面临着类似的问题,但VirtualizingStackPanel.IsVirtualizing=”False”并没有解决我的问题。 有没有人面临同样的问题? 问题是我有一个自定义combobox, 然而我无法获得对via内部复选框的引用, this.ItemContainerGenerator.ContainerFromItem(this.Items[0]) as ComboBoxItem; 有什么建议吗? 我真正想要实现的是, 我想更改checkboxes ischecked属性,这取决于可以在运行时更改的其他对象。 我不能使用绑定,因为整个项目的当前状态,此时我无法改变。 所以基本上一旦创建了新的MultiSelectionComboBox,我想做这样的事情, foreach (object item in this.Items) { ComboBoxItem comboBoxItem = this.ItemContainerGenerator.ContainerFromItem(item) as ComboBoxItem; if (comboBoxItem == null) continue; FrameworkElement element = comboBoxItem.ContentTemplate.LoadContent() as FrameworkElement; CheckBox checkBox = element.FindName(“CheckBoxItem”) as CheckBox; checkBox.IsChecked = this.SelectedItem.Contains(item); }

Treeview ContainerFromItem始终返回null

我已经阅读了关于这个主题的几个主题,但找不到任何可以做我想做的事情。 我有一个树视图绑定到一组分层的对象。 这些对象中的每一个都代表地图上的图标。 当用户单击地图上的其中一个图标时,我想在树状视图中选择该项目,将其聚焦,然后将其滚动到视图中。 map对象具有绑定到treeview的对象列表。 在示例中,Thing是绑定到树的对象的类型。 public void ScrollIntoView(Thing t) { if (t != null) { t.IsSelected = true; t.IsExpanded = true; TreeViewItem container = (TreeViewItem)(masterTreeView .ItemContainerGenerator.ContainerFromItem(t)); if (container != null) { container.Focus(); LogicalTreeHelper.BringIntoView(container); } } } 到目前为止,无论我尝试过什么,容器总是为空。 有任何想法吗?