是否可以数据绑定到内存中的对象,并允许数据绑定到XML

时间:2010-10-30 14:02:58

标签: c# wpf xml binding

我创建了一个名为Project的对象,它有不同的属性(字符串和一些自定义对象),我将文本字段绑定到这些属性以获取用户输入。我创建了一个将此对象输出到XML文件的方法。但是,当我将此XML文件重新导入内存时,文本字段不会填充从ObservableCollection继承的某些自定义对象的文本或列表视图中没有任何文本。 XML确实正确加载,因为如果我在空字段中输入文本,它会更新属性,我可以导出带有新值的XML文件。

要加载xml我使用以下代码

public void LoadXML()
    {
        OpenFileDialog fileDialog = new OpenFileDialog();
        fileDialog.Title = "Load XML File";
        fileDialog.Filter = "XML Files|*.xml";
        DialogResult result = fileDialog.ShowDialog();

        if (result.ToString().Equals("OK"))
        {
            string filePath = fileDialog.FileName.ToString();
            XmlSerializer serializer = new XmlSerializer(typeof(Project));
            TextReader textReader = new StreamReader(filePath);
            newProject = (Project)serializer.Deserialize(textReader);
            textReader.Close();
        }

    }

欢迎任何建议,谢谢。

1 个答案:

答案 0 :(得分:0)

我假设你使用WPF。

您需要实现INotfiyPropertyChanged-Interface并为您的类中与Control绑定的每个Property抛出其事件。

当您从XML反序列化项目时,WPF会相应地更新您的GUI。如果没有,请检查控件的DataContext是否设置为您反序列化的Project实例。