【发布时间】:2023-04-07 13:15:01
【问题描述】:
我已经使用带有此方法的按钮来反序列化 ObservableCollection,但之后我无法再将对象添加到我的列表中。
private async void RecoveryList_Click(object sender, RoutedEventArgs e)
{
StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync("List.xml");
DataContractSerializer serializer = new DataContractSerializer(typeof(ObservableCollection<ProductClass>));
using (Stream stream = await file.OpenStreamForReadAsync())
{
ObservableCollection<ProductClass> Products = serializer.ReadObject(stream) as ObservableCollection<ProductClass>;
ListView1.ItemsSource = Products;
}
}
并进行序列化
private async void ButtonSave_Click(object sender, RoutedEventArgs e)
{
DataContractSerializer serializer = new DataContractSerializer(typeof(ObservableCollection<ProductClass>));
StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync("List.xml", CreationCollisionOption.ReplaceExisting);
using (Stream stream = await file.OpenStreamForWriteAsync())
{
serializer.WriteObject(stream, Products);
ListView1.ItemsSource = Products;
}
}
添加我用过的产品
private async void ButtonAdd_Click(object sender, RoutedEventArgs e)
{
Products.Add(new ProductClass{ Prodotti = TexBoxInputProducts.Text });
}
我的 ObservableCollection 是
public ObservableCollection<ProductClass> Products;
我的课是
namespace AppSpesaPhone.Models
{
public class ProductClass
{
public string Prodotti { get; set; }
}
}
如何将一些“产品”添加到我的列表中?
【问题讨论】:
-
您遇到了什么异常?
-
当用户插入一个产品时,这个替换整个反序列化列表
-
我有一个文本框,用户在其中插入产品,单击添加按钮后,产品进入列表。所以,当用户关闭我想要的应用程序时,当他回来时,点击“恢复列表”后,应用程序会给他他的旧列表。现在用户可以添加产品,但如果列表被反序列化,新产品将替换旧的反序列化列表。
-
什么都没有改变,当我添加一个产品什么都没有出现,只有反序列化的列表。
标签: c# xml deserialization win-universal-app xml-deserialization