Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可观察收集<;T>;WPF绑定显示未更新_Wpf_User Interface_Data Binding - Fatal编程技术网

可观察收集<;T>;WPF绑定显示未更新

可观察收集<;T>;WPF绑定显示未更新,wpf,user-interface,data-binding,Wpf,User Interface,Data Binding,在为可观察集合设置数据绑定时,在以下上下文下:所有绑定都正常工作,但我发现除了更改列表框中ItemsSource定义的属性外,我还必须手动使用类似以下代码更新UI的可视容器: XAML: 代码隐藏: 公共部分类主窗口:窗口 { 公共主窗口() { 初始化组件(); LbItems=新的ObservableCollection(); LbItems.CollectionChanged+=lbFiles\u CollectionChanged; } 私有无效LBU文件集合已更改(对象发送方, S

在为
可观察集合
设置数据绑定时,在以下上下文下:所有绑定都正常工作,但我发现除了更改列表框中ItemsSource定义的属性外,我还必须手动使用类似以下代码更新UI的可视容器:

XAML:


代码隐藏:

公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
LbItems=新的ObservableCollection();
LbItems.CollectionChanged+=lbFiles\u CollectionChanged;
}
私有无效LBU文件集合已更改(对象发送方,
System.Collections.Specialized.NotifyCollectionChangedEventArgs(e)
{
MemoryPersistentStorageBridge memBridge=GetPersistentStorageBridge;
List newFileList=新列表();
foreach(LbItems中的字符串str){
DoSomethingWithNewString(str);//这两行总是成对的?
lbFiles.Items.Add(str);//不需要这样做
}
}
}

我缺少一个装订吗

当设置了
LbItems
时,是否启动
PropertyChanged
?看起来不是那样的。在构造函数中,首先调用
InitializeComponent
,然后在
LbItems=newobservedcollection()中初始化集合。我认为您的集合初始化“太晚了”,因为绑定已经被处理。如果在设置
LbItems
时未触发已更改的属性,则绑定将不会更新为实际绑定到集合