关于WPF,需要有关数据源和数据绑定的建议

时间:2015-06-21 18:33:44

标签: c# .net xml wpf data-binding

我不是WPF的新手,但我仍然是新手。比方说,我想构建一个应用程序,它将一个人的数据存储在一个唯一且独立的文件中,而不是存储在数据库中,就像记事本一样。我的应用程序应该做以下事情。

  1. 应该能够将个人信息保存在一个独特的文件中。
  2. 它应该能够打开用户指定的文件并自动填充属性/表单。
  3. 我如何实现这一目标? XML绑定是实现此目的的唯一方法,还是有其他替代方案?我的意思是,如果我使用XML绑定,我可以编写代码,使用户能够打开并保存不同的XML文件,但我还读到,从架构的角度来看,应该避免绑定到XML。那么,我的问题有替代解决方案吗?

3 个答案:

答案 0 :(得分:2)

我认为如果你尝试使用阅读并将内容写入CSV(逗号分隔值)文件(如果不打算实现数据库),那么你可以实现你想要的东西。

另外,如果您计划为每个用户分别创建一个单独的文件,那么这不是一个好主意。

这里无法解释所有事情。因此,请查看下面发布的链接,其中详细说明了如何实现对csv文件的读取和写入。

此示例已从此处发布,以获取完整详细信息,请查看以下链接Reading and writing to a csv file

答案 1 :(得分:2)

显然,您的要求是将人员详细信息保存到一个唯一的文件中。如果你真的想使用这种方法,一种选择就是使用XMLSerialization。

您可以为数据绑定创建普通人对象。

如果要将数据保存到特定人员的文件中,可以序列化对象并使用正确的名称保存文件(人员ID左右)

如果要从文件中获取Person数据,可以将其直接反序列化为person对象。

//  Serialize and write to file
Person person = myPerson;
var serializer = new XmlSerializer(person.GetType());
using (var writer = XmlWriter.Create("person1.xml"))
{
    serializer.Serialize(writer, person);
}

//  Deserialize back to an instance
var serializer = new XmlSerializer(typeof(Person));
using (var reader = XmlReader.Create("person1.xml"))
{
    var person= (Person)serializer.Deserialize(reader);
}

答案 2 :(得分:1)

用于保存用户数据,例如会话和设置。有很多方法可以做到这一点。

  1. 保存到数据到txt文件。请参阅here.
  2. 将数据保存到数据库。请参阅here.
  3. 我个人最喜欢的,保存到Settings文件。请参阅here.
  4. 这些只是一些可以在本地保存数据的方式。

    请注意,我提到将数据保存到数据库,因为它不应该完全敲门,特别是如果您要保存批次数据。

    要更直接地回答您的问题,我建议您选择选项3 。对于相对较小的数据集,例如用户信息和用户设置,最好将它们保存到内置的Settings文件中。这很容易。

    祝你好运!