1

我在 Pivot 部分中有一个 dataBinding ListBox。

在另一个 Pivot 部分中,我有一个为 ListBox 创建新项目的表单。

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

ListBoxItem lbItem = allItemsListBox.ItemContainerGenerator.ContainerFromIndex(itemIndex) as ListBoxItem;

始终返回 null。

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

我该如何解决?

谢谢。

4

1 回答 1

1

为什么不将数据绑定与 DataTemplates 一起使用,而不是尝试直接修改控件?

例如:

代码:

// 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:

<Pivot Name="Pivot1">
    <Pivot.ItemTemplate>
        <DataTemplate>
            <TextBlock Text={Binding Text}" />
        </DataTemplate>
    </Pivot.ItemTemplate>
</Pivot>

现在,要更改特定 TextBlock 的 Text,您需要做的就是从列表中将关联的 Data 对象的值更改为它。

于 2012-09-19T17:16:07.590 回答