【问题标题】:Can't bind to View's property无法绑定到 View 的属性
【发布时间】:2013-01-18 19:22:13
【问题描述】:

在我的视图的xaml文件中,我有这一行:

TextBox Text="{Binding MyModel.Text}"

每次我运行程序时,它都会给我这个错误消息:

System.Windows.Data 错误:40:BindingExpression 路径错误: 在“对象”“MyModel”上找不到“MyModel”属性 (哈希码=56593137)'。绑定表达式:路径=MyModel.Text; DataItem='MyModel' (HashCode=56593137);目标元素是“文本框” (名称='');目标属性是“文本”(类型“字符串”)

我确定我的拼写是正确的。

我将视图的 DataContext 设置为 ViewModel。会不会有问题?

【问题讨论】:

    标签: wpf


    【解决方案1】:

    如果您的DataContext 设置为MyModel,您应该只需要写:

    <TextBox Text="{Binding Text}"/>
    

    添加额外的MyModel 是重复的,会导致查找MyModel.MyModel.Text

    【讨论】:

      【解决方案2】:

      只要TextBox Text="{Binding Text}"

      【讨论】:

        【解决方案3】:

        由于您的视图已绑定到您的视图模型(很好),因此您的视图模型需要具有您的视图将绑定到的属性:

        TextBox Text="{Binding MyViewModelsProperty}"
        

        根据您的情况,您需要从视图模型(MyViewModelsProperty 设置器)设置模型的属性。

        如果您需要更多信息,请告诉我。

        【讨论】:

        • 我在我的视图模型中创建了一个“包装器”属性。
        • 但它似乎总是试图在模型中找到属性
        • System.Windows.Data 错误:40:BindingExpression 路径错误:在“对象”“MyModel”(HashCode=35353884)上找不到“Textt”属性。绑定表达式:路径=文本; DataItem='MyModel' (HashCode=35353884);目标元素是'TextBox'(名称='');目标属性是“文本”(类型“字符串”)
        • @user1447343...可能是因为您使用 xaml 示例的方式。请发布您尝试绑定的视图模型的属性。
        • @user1447343...'Textt' 真的是你的财产吗?
        猜你喜欢
        • 2014-03-24
        • 2012-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-15
        • 2018-08-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多