WPF绑定到数据上下文

时间:2013-07-18 15:34:05

标签: wpf xaml mvvm binding

为什么XAML绑定在我的视图模型中成功:

    private string _testStr = "Test";
    public string TestStr
    {
        get { return _testStr; }
    }

但不是这样:

    public string TestStr = "Test";

我错过了什么吗?

感谢。

2 个答案:

答案 0 :(得分:3)

因为字段不是有效的binding source

公共语言运行时(CLR)对象

  

您可以绑定到任何公共语言运行时(CLR)对象的公共属性,子属性以及索引器。绑定引擎使用CLR反射来获取属性的值。或者,实现ICustomTypeDescriptor或具有已注册的TypeDescriptionProvider的对象也可以使用绑定引擎。

动态对象

  

您可以绑定到实现IDynamicMetaObjectProvider接口的对象的可用属性和索引器。如果您可以在代码中访问该成员,则可以绑定它。

ADO.NET对象

  

您可以绑定到ADO.NET对象,例如DataTable。 ADO.NET DataView实现IBindingList接口,该接口提供绑定引擎侦听的更改通知。

XML对象

  

您可以在XmlNode,XmlDocument或XmlElement上绑定并运行XPath查询。访问作为标记中绑定源的XML数据的便捷方法是使用XmlDataProvider对象。您还可以使用LINQ to XML绑定到XElement或XDocument,或绑定到在这些类型的对象上运行的查询结果。使用LINQ to XML访问作为标记中绑定源的XML数据的便捷方法是使用ObjectDataProvider对象。

DependencyObject对象

  

您可以绑定到任何DependencyObject的依赖项属性。

答案 1 :(得分:0)

它必须是公共财产而不是变量
获得使它成为公共财产
这个想法是限制暴露在外面的世界