我正在构建一个Windows Phone 7应用程序,我正在尝试用一个额外的属性来装饰一个生成的类来绑定,但我对如何在架构上解决这个问题感到有些困惑。我目前拥有的是这个类,它是使用XML文件中的xsd.exe工具生成的:
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
[System.Diagnostics.DebuggerStepThroughAttribute]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public class Session
{
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string Abstract { get; set; }
[System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string Speaker { get; set; }
[System.Xml.Serialization.XmlAttributeAttribute]
public string TimeslotBegin { get; set; }
[System.Xml.Serialization.XmlAttributeAttribute]
public string Location { get; set; }
[System.Xml.Serialization.XmlAttributeAttribute]
public string TimeslotEnd { get; set; }
[System.Xml.Serialization.XmlAttributeAttribute]
public string Title { get; set; }
}
我从网上获取XML并使用XmlSerializer
对其进行反序列化,但我想添加一个额外的属性以允许用户在UI中“标记”项目。我希望能够绑定到此属性,因此它应该在更改时通知UI线程。
关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
对于这种情况,我建议您将模型与ViewModel分开。
ViewModel是专为UI设计的数据表示(包括可绑定属性)。
模型是“纯粹的”数据表示,专门用于建模您的域和持久性(直接到IsolatedStorage或可能通过Web服务持久化)
所以,我建议你为你的UI构建一些ViewModel类来绑定 - 然后弄清楚这些ViewModel如何与模型交互。
另外,我还要谨慎使用Windows Phone 7中的XSD生成类 - WP7似乎更喜欢XDocument Linq XML类,而不是XmlDocument XML类(但我可能有这个错误!)< / p>