WPF ListBox not updating with the ItemsSource
.net, c#, data-binding, listbox, wpf
Solution
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.
Problem
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. I'm setting this ItemsSource of the ListBox programmatically: ``` lstVariable_Selected.ItemsSource = m_VariableList; ``` 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> ``` 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. 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. What gives?