我有一个带有自定义itemtemplate的数据绑定WPF ListBox - > DataTemplate中。该模板的一部分也是ListBox。 在某些事件中,我想循环遍历ListBox中的所有文本框并检索它们的值。 这可能吗?
答案 0 :(得分:1)
您应该可以使用ItemContainerGenerator
并在模板中查找元素来执行此操作:
foreach (var item in lb.Items)
{
var itemContainer = lb.ItemContainerGenerator.ContainerFromItem(item) as ListBoxItem;
// Name the TextBox in the template to find it here.
var textBox = itemContainer.ContentTemplate.FindName("?????", itemContainer) as TextBox;
var value = textBox.Text;
}
(如果您引用的TextBox在模板中的ListBox中,则必须通过重复相同的方法深入挖掘。)