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?
  • Вопрос задан
  • 765 просмотров
Решения вопроса 2
yarosroman
@yarosroman Куратор тега C#
C# the best
Использовать ObservableCollection. List не оповещает о добавлении элемента в список.
Ответ написан
Комментировать
Тыц или стелять PropertyChange при добавлении вручную
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
20 сент. 2024, в 16:32
10000 руб./за проект
20 сент. 2024, в 15:59
20000 руб./за проект