[BindingExpression尝试绑定到C#类字段时发生路径错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[BindingExpression尝试绑定到C#类字段时发生路径错误相关的知识,希望对你有一定的参考价值。

我有一个非常简单的绑定(使用{Binding},而不是{x:Bind}),但是没有用:

<ListView
    ItemsSource="{x:Bind ViewModel.Items, Mode=OneWay}">
    <ListView.ItemTemplate>
        <DataTemplate x:DataType="local:Item">
            <StackPanel>
                <TextBlock Text="{Binding MyField}" />
            </StackPanel>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

它编译,但失败,并显示错误消息:

错误:BindingExpression路径错误:在'MyNamespace.Item'上找不到'MyField'属性。 BindingExpression:Path ='MyField'DataItem ='MyNamespace.Item';目标元素是“ Windows.UI.Xaml.Controls.TextBlock”(名称=“空”);目标属性为“文本”(类型为“字符串”)

x:Bind使用相同的绑定:

<TextBlock Text="{x:Bind MyField}" />

ViewModel和项目定义


namespace MyNamespace
{
    public class Item : INotifyPropertyChanged
    {
        public Item()
        {
            // ...
        }

        public readonly string MyField = "Foo";

        // ...
    }

    public class MainPageViewModel : INotifyPropertyChanged
    {
        public MainPageViewModel()
        {
            // ...
        }

        private ItemsCollection _itemsCollection = new ItemsCollection();
        public ObservableCollection<Item> Items
        {
            get { return _itemsCollection.Items; }
        }

        // ...
    }
}
答案

[MyField是C#类字段,无法与{Binding}绑定。

以上是关于[BindingExpression尝试绑定到C#类字段时发生路径错误的主要内容,如果未能解决你的问题,请参考以下文章

BindingExpression 路径错误:在“对象”上找不到属性

无法将XAML按钮可见性与C#视图模型专用可见性变量绑定

System.Windows.Data 错误:40:BindingExpression 路径错误:

我可以从 UserControl 绑定到 DataTemplate 吗?

找不到WPF绑定属性

WPF datagrid.rowstyle 绑定