我在透视表节中有一个dataBinding ListBox。
在另一个透视表部分,我有一个为ListBox创建新项的表单。
当我向ListBox添加新项时,我需要访问新的ListBoxItem以查找TextBox控件并修改文本值,但是
ListBoxItem lbItem = allItemsListBox.ItemContainerGenerator.ContainerFromIndex(itemIndex) as ListBoxItem;始终返回null。
问题似乎在于ListBox是不可见的,所以新的ListBoxItem是虚拟的。
我该如何解决这个问题呢?
谢谢。
发布于 2012-09-20 01:16:08
为什么不在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的文本,您需要做的就是将列表中的关联数据对象的值更改为它。
https://stackoverflow.com/questions/12499498
复制相似问题