WPF ListBox 未使用 ItemsSource 更新

WPF ListBox not updating with the ItemsSource(WPF ListBox 未使用 ItemsSource 更新)
本文介绍了WPF ListBox 未使用 ItemsSource 更新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我认为在 WPF 设置中应该是简单的双向数据绑定,但列表框(目标)没有随着集合的变化而更新.

I have what I believe should be simple two-way databinding in WPF setup, but the listbox (target) is not updating as the collection changes.

我正在以编程方式设置 ListBox 的 ItemsSource:

I'm setting this ItemsSource of the ListBox programmatically:

lstVariable_Selected.ItemsSource = m_VariableList;

ListBox声明如下:

And the ListBox is declared as follows:

<ListBox Margin="5" Name="lstVariable_Selected">
    <ListBox.ItemsPanel>
       <ItemsPanelTemplate>
          <VirtualizingStackPanel Orientation="Horizontal"/>
       </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBox.ItemTemplate>
       <DataTemplate>
            <Border BorderBrush="Gray" BorderThickness="1" Margin="0">
                <TextBlock FontSize="25" Text="{Binding Path=Name}" />
            </Border>
       </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

当我最初设置 ItemsSource 时,ListBox(当时不可见)设置了它的项目.但是,如果我查看 ListBox,更新似乎会停止.

When I initially set the ItemsSource, the ListBox (which is not visible at the time) gets its items set. However, if I go view the ListBox, updates seem to stop at that point.

然后我可以从 m_VariableList 集合中删除一个项目,并且它不会从 ListBox 中消失.同样,如果我添加一个,它不会出现.

I can then remove an item from the m_VariableList collection, and it does not disappear from the ListBox. Likewise, if I add one, it doesn't appear.

什么给了?

推荐答案

你的 m_VariableList 是否实现了 INotifyCollectionChanged?如果它不是 ObservableCollection,那么对其内容的更改将不会自动反映在 UI 中.

Is your m_VariableList implementing INotifyCollectionChanged? If it's not an ObservableCollection, then changes to it's contents will not automatically be reflected in the UI.

这篇关于WPF ListBox 未使用 ItemsSource 更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)