c# - 是否可以将数据绑定(bind)到内存中的对象并允许数据绑定(bind)到 XML

标签 c# wpf xml binding

我创建了一个名为 Project 的对象,它具有不同的属性(字符串和一些自定义对象),我已将文本字段绑定(bind)到这些属性以获取用户输入。我创建了一个将此对象输出到 XML 文件的方法。但是,当我将此 XML 文件导入回内存时,文本字段不会填充文本,或者从 ObservableCollection 继承的某些自定义对象的 ListView 没有任何文本。 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();
        }

    }

欢迎提出任何建议,谢谢。

最佳答案

我假设您使用 WPF。

您需要实现 INotfiyPropertyChanged-Interface 并为类中绑定(bind)到控件的每个属性抛出其事件。

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

关于c# - 是否可以将数据绑定(bind)到内存中的对象并允许数据绑定(bind)到 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4059014/

相关文章:

c# - 是否可以创建一个通用的 Func<T><T>

c# - 泛型派生

WPF ContextMenu 问题 : How do I set the DataContext of the ContextMenu?

c# - 在 WPF 中创建可重用的用户控件

php 计算 xml 元素

android - 如何在android中创建一个支持所有设备的布局?

c# - 从 Process.StandardOutput 捕获二进制输出

c# - 使用跳跃运动为 PowerPoint 编写自定义代码?

c# - DependencyProperty 的 RegisterAttached() 和 Register() 中的不同行为

javascript - 附加到 DOM 时 XML 属性变为小写