WPF ListBox 未使用 ItemsSource 更新 [英] WPF ListBox not updating with the ItemsSource

查看:19
本文介绍了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 更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆