【发布时间】:2021-06-08 20:46:33
【问题描述】:
我目前有一个绑定到列表框项的类对象。以前我通过单击按钮并访问其父级来获取 ListBoxItem 中的其他对象,但现在我需要在不单击按钮或标签的情况下仅按其类来收集对象。
我试图收集 ListBoxItem 及其索引和类绑定,但它们都给了我一个 null 值:
ObservableCollection<ClassBinding> classList = new ObservableCollection<ClassBinding>();
... adding items here to the collection;
listBox.ItemsSource = classList;
ListBoxItem lbi = (ListBoxItem)listBox.ItemContainerGenerator.ContainerFromIndex(index);
还有其他方法可以访问列表框项,以便稍后使用函数FindName(...) 收集其他对象吗?
调试:
TextBlock delay = lbi.FindName("lblDelay") as TextBlock;
错误:
Output: Exception thrown: 'System.InvalidOperationException' in WindowsBase.dll
【问题讨论】:
-
你知道你可以为你的列表框绑定选定的项目,从而删除所有这些代码。一个更紧迫的问题是你为什么不使用绑定?向我们展示您的 xaml,我们可以提供更多帮助。
-
我认为您在转换中的某个地方是错误的。使用标签延迟 = lbi.FindName("lblDelay") 作为标签;
-
@meysamasadi 它是一个文本块。任何人我都会添加更多信息。
-
如果可以导入ClassBinding类内容,可能会发现bug。
标签: c# wpf button listbox listboxitem