获取ListBox中的ListBoxItem

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取ListBox中的ListBoxItem相关的知识,希望对你有一定的参考价值。

我正在尝试从ListBox中选择它时更改ListBoxItem上的Control模板。为此,我将从ListBox本身获取选定的ListBoxItem,并在其上设置控件模板。我该怎么做呢?我试过,SelectedItem并返回ListBoxItem中的绑定对象。

答案

您可以使用ItemContainerGenerator从绑定项检索项容器:

object selectedItem = listBox.SelectedItem;
ListBoxItem selectedListBoxItem = listBox.ItemContainerGenerator.ContainerFromItem(selectedItem) as ListBoxItem;
另一答案

现在你可以这样做:

ListBoxItem container = listBox.ContainerFromIndex(listBox.SelectedIndex) as ListBoxItem;

ItemContainerGenerator.ContainerFromItem()功能现在看起来像obsolete

如果您已为ListBox设置了项目模板,那么您可以从中获取它

UIElement item= container.ContentTemplateRoot;

以上是关于获取ListBox中的ListBoxItem的主要内容,如果未能解决你的问题,请参考以下文章

如何从选定的 ListBox Control 的 listboxitem 中获取属性? C#

获取 ListBoxItem 的索引 - WPF

使用 ListBox 本身内部的“添加”按钮添加 ListBoxItem

在c#中删除listBoxItem时ListBox不刷新

自定义的 ListBoxItem 自适应ListBox的宽度

WPF Listbox 控件模板不显示 Listboxitem 控件模板和 ItemTemplate 数据模板