gpt4 book ai didi

c# - 从反序列化对象更新 ListView

转载 作者:行者123 更新时间:2023-11-30 17:27:59 28 4
gpt4 key购买 nike

我有一个 WPF 应用程序,我可以在其中添加人员。它们将显示在 ListView 中。每次我添加某人时,他们都会出现。但是,如果我尝试过多加载文件, View 将不会刷新。

Persons = new List<Person>();
UsersListView.ItemsSource = Persons;

View = (CollectionView)CollectionViewSource.GetDefaultView(UsersListView.ItemsSource);

if (File.Exists("Persons.bin"))
{
Persons = (List<Person>) Utils.Deserialize("Persons.bin");
// The Persons list gets populated however, it doesn't show up in my view.
View.Refresh();
}

private void AddPersonButton_Click(object sender, RoutedEventArgs e)
{
if (ValidateInfo())
{
Person person = new Person(FirstNameTextBox.Text, LastNameTextBox.Text, Convert.ToInt32(AgeTextBox.Text));
View.Refresh();
Utils.Serialize(Persons, "Persons.bin");
}
}

当我通过按钮添加人员时,他们查看的内容将刷新并出现,但是当我关闭并打开应用程序时,如果我的人员列表已填充,这些人员将永远不会显示。

最佳答案

您应该将 ItemsSource 属性设置为新的反序列化集合:

if (File.Exists("Persons.bin"))
{
Persons = (List<Person>) Utils.Deserialize("Persons.bin");
UsersListView.ItemsSource = Persons;
}

您可能还想查看数据绑定(bind):https://learn.microsoft.com/en-us/dotnet/framework/wpf/data/data-binding-wpf

关于c# - 从反序列化对象更新 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53947687/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com