gpt4 book ai didi

WPF ObservableCollection 不更新?

转载 作者:行者123 更新时间:2023-12-03 13:15:32 25 4
gpt4 key购买 nike

似乎无法更新 ObservableCollection。 TreeView 显示为空。
错误:这种类型的collectionview 不支持从与dispatcher 线程不同的线程对其sourcecollection 的更改。

类级别变量

public ObservableCollection<TSItem> tsItems { get; set; }

初始化组件
tsItems = new ObservableCollection<TSItem>();
bwRun.DoWork += bwRun_DoWork;
InitializeComponent();
tvTest.ItemsSource = tsItems;

从后台工作人员我使用以下方法添加到集合中
 private void AddTreeViewItem(TSItem item)
{
tsItems.Add(item);
}

xml
<TreeView x:Name="tvTest" HorizontalAlignment="Left" Height="249" Margin="140,36,0,0" VerticalAlignment="Top" Width="257">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Icon}" />
<TextBlock Text="{Binding Header}" />
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>

最佳答案

您应该将更改发送到 UI 线程:

 private void AddTreeViewItem(TSItem item)
{
Dispatcher.BeginInvoke(new Action(() => tsItems.Add(item)));
}

关于WPF ObservableCollection 不更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20330693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com