Задать вопрос
kykyryky
@kykyryky

Почему не до конца работает биндинг List на ListBox?

Есть такой код во ViewModel:
private List<string> items;
public List<string> Items
        {
            get
            {
                items = new List<string> { "1", "2", "3" };
                return items;
            }
        }


XAML:
<ListBox x:Name="listBox"
                 Width="612"
                 Height="475"
                 Margin="24,179,0,0"
                 HorizontalAlignment="Left"
                 VerticalAlignment="Top"
                 ItemsSource="{Binding Path=Items,
                                       Mode=OneWay}">

            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding}" />
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>


В данном случае в listbox выводятся 3 строки с 1 2 и 3. Вроде всё нормально.
Потом я убираю строку с созданием списка из геттера
private List<string> items;
public List<string> Items
        {
            get
            {
                return items;
            }
        }

и пытаюсь добавить элемент. Например в конструкторе ViewModel:
items = new List<string>();
items.Add("4");

При этом в listbox ничего не появляется. Items.Add("4") - та же ерунда.
Что мне нужно сделать, чтобы элемент добавлялся и список отображался в listbox?
  • Вопрос задан
  • 770 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
yarosroman
@yarosroman Куратор тега C#
C# the best
Использовать ObservableCollection. List не оповещает о добавлении элемента в список.
Ответ написан
Комментировать
Тыц или стелять PropertyChange при добавлении вручную
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы