首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListBox.ItemContainerGenerator.ContainerFromIndex返回null

ListBox.ItemContainerGenerator.ContainerFromIndex返回null
EN

Stack Overflow用户
提问于 2012-09-20 01:03:19
回答 1查看 523关注 0票数 1

我在透视表节中有一个dataBinding ListBox。

在另一个透视表部分,我有一个为ListBox创建新项的表单。

当我向ListBox添加新项时,我需要访问新的ListBoxItem以查找TextBox控件并修改文本值,但是

代码语言:javascript
复制
ListBoxItem lbItem = allItemsListBox.ItemContainerGenerator.ContainerFromIndex(itemIndex) as ListBoxItem;

始终返回null。

问题似乎在于ListBox是不可见的,所以新的ListBoxItem是虚拟的。

我该如何解决这个问题呢?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-09-20 01:16:08

为什么不在DataTemplates中使用数据绑定,而不是尝试直接修改控件呢?

例如:

代码:

代码语言:javascript
复制
// Data binding class
public class Data
{
    // Implement INofifyPropertyChanged
    public string Text { get; set; }
}

// Code to bind it to Pivot

ObservableCollection<Data> list = new ObservableCollection<Data>();
// populate list
Pivot1.ItemsSource = list;

XAML:

代码语言:javascript
复制
<Pivot Name="Pivot1">
    <Pivot.ItemTemplate>
        <DataTemplate>
            <TextBlock Text={Binding Text}" />
        </DataTemplate>
    </Pivot.ItemTemplate>
</Pivot>

现在,要更改特定TextBlock的文本,您需要做的就是将列表中的关联数据对象的值更改为它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12499498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档