ListView, для которого .itemssource установлен в список, но не обновляется, когда я добавляю элемент в список - PullRequest
0 голосов
/ 09 мая 2020

Это звучит довольно просто, но на самом деле мне потребовалось несколько часов, а все еще не сделано. Вот мой C# код:

    public ItemEditor() {
        InitializeComponent();
        ListView_Item.ItemsSource = TestList;
    }

    List<Item> TestList = new List<Item>();

    private void MenuItem_AddNewItem_Click(object sender, RoutedEventArgs e) {
        Item newItem = new Item();
        TestList.Add(newItem);
        newItem.Name = "new item";
    }

Когда выполняется функция MenuItem_AddNewItem_Click, список никогда не обновляется. Я не могу понять, как это может быть. И вот мой код xaml:

    <Grid DockPanel.Dock="Left">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="200"></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition Width="200"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <ListView x:Name="ListView_Item" Grid.Column="0" ContextMenu="{StaticResource ContextMenu_ListView_Item}" SelectionMode="Single">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Path=Name}"></TextBlock>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
        <GridSplitter Grid.Column="0" Width="5"/>
        <StackPanel Grid.Column="1" Orientation="Vertical">
            <DockPanel>
                <TextBlock>Name:</TextBlock>
                <TextBox></TextBox>
            </DockPanel>
        </StackPanel>
        <GridSplitter Grid.Column="1" Width="5"/>
        <Grid Grid.Column="2"></Grid>
    </Grid>

Кто-нибудь может мне помочь? Я просмотрел множество веб-страниц, на них были похожие ситуации, но ни одна из них не может помочь мне решить мою проблему.

1 Ответ

1 голос
/ 09 мая 2020

Как упоминалось в комментариях к вопросу, использование ObservableCollection - самый простой способ добиться этого. Это то, для чего предназначена эта коллекция. Если вам когда-либо понадобится изменить существующий настраиваемый тип коллекции, а не использовать ObservableCollection, вы захотите реализовать INotifyPropertyChanged и INotifyCollectionChanged.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...