0
我有一个应该显示可观察集合内容的WPF应用程序的列表视图。我曾经在一个较旧的版本中显示过,但为了更频繁地更新列表视图,我更改了XAML并且在重新放回之后它现在不显示任何东西。WPF ListView不显示Observable Collection的内容
这里是XAML:
<TabItem GotFocus="TabSelect">
<TabItem.Header>
<TextBlock FontSize="12pt">error log</TextBlock>
</TabItem.Header>
<Grid><ListView Name="JfifoList" ItemsSource="{Binding JFifoErrorCollection}" Background="Transparent">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Time}" Header="time" Width="100" />
<GridViewColumn DisplayMemberBinding="{Binding FEStatus}" Header="fe status" Width="100" />
<GridViewColumn DisplayMemberBinding="{Binding BEStatus}" Header="be status" Width="100" />
<GridViewColumn DisplayMemberBinding="{Binding Trigger}" Header="trigger" Width="100" />
</GridView>
</ListView.View>
</ListView></Grid>
</TabItem>
我设置列表中的DataContext的“本”窗口:
JfifoList.DataContext = this;
调试时,我可以看到的是,收集填充,所以要显示的数据...虽然也在调试时,我反复在调试输出中看到一个错误,指出“在PresentationFramework.dll中发生类型'System.NotSupportedException'的第一次机会异常”。
编辑:我查了一下,发现UI元素必须在UI线程中更新...由于某种原因(我没有在代码中创建任何代码)有很多线程在我的程序中运行,他们似乎都在更新我的ObservableCollection ...不知道这是否可能是问题...
1.你看到任何绑定错误,在没有绑定为您'的ItemsSource =“{结合JFifoErrorCollection}”'? 2.用'ListBox'替换ListView,并通过设置其'DiaplayMemberPath'来显示'JFifoErrorCollection'的某个成员。如果列表框显示数据,那么ListView配置有一些问题。 3.即使你可观察的集合在另一个线程中填充,你是否在viewmodel模块的该线程中引发了'NotifyPropertyChanged(“JFifoErrorCollection”)? –
Listbox也没有显示任何东西...... Observable Collection不会引发这个事件吗? – Luke
实际上可观察的集合不是线程安全的。 :( –