使用contentProperty加载XAML错误

时间:2010-06-24 21:30:40

标签: wpf xaml

我正在阅读有关XAML的更多内容,并且我已经创建了一个XML文件,并希望加载它。这一切都有效,但是当我使用ContentProperty属性时,更重要的是我从XML文件中删除了Company.Employees标记,加载xml文件时出现“无法添加到公司”的错误。

代码是:

<?xml version="1.0" encoding="utf-8" ?>
 <Company Name="BBC" xmlns="clr-namespace:XamlLoading;assembly=XamlLoading">
  <Company.Owner> 
    <Person Name="John" Age="49"/>
  </Company.Owner>

  <!--<Company.Employees>
    <Person Name="Dave" Age="66" />
     <Person Name="Paul" Age="45"/>
  </Company.Employees>-->

 <Person Name="Dave" Age="66" />
 <Person Name="Paul" Age="45"/>
</Company>
[ContentProperty("Employees")]
public class Company 
{
    public Company()
    {
        Employees = new List<Person>();
    }

    public Person Owner { get; set; }

    public string Name { get; set; }
    public List<Person> Employees { get; set; }
}


    static void Main(string[] args)
    {
        using (FileStream fs = File.OpenRead(@"..\..\company.xml"))
        {

            Company c = (Company)XamlReader.Load(fs); * ERROR HERE

            Console.WriteLine(c.Name);
            Console.WriteLine(c.Owner);

            foreach (var item in c.Employees)
            {
                Console.WriteLine("{0} : ", item);
            }

            Console.ReadLine();
        }
    }

1 个答案:

答案 0 :(得分:1)

我建议您更新到最新版本的.NET。你的代码对我很有用。

这是一个非常有趣的XAML案例研究。我以前从未见过这种方式。通常,XAML像HTML标记一样用于声明性地定义用户界面。 Blend是一个WYSIWYG编辑器,用于通过生成XAML来创建用户界面。

您已经展示了使用XamlReader从xml实现数据的一些有趣潜力。