【问题标题】:WPF - BindingExpression path errorWPF - BindingExpression 路径错误
【发布时间】:2015-05-09 05:25:37
【问题描述】:

我的视图模型中有一个可观察的集合,如下所示。

           private ObservableCollection<MyClass> _myData;
           public  ObservableCollection<MyClass> MyData
           {
                  set { _myData=value; }
                  get { return _myData }
           }

MyClas 的结构如下所示。

          class MyClass 
          {
                 private string name;
                 public string Name;
                 {
                     set { name=value;}
                     get { return name;}
                 }
           }

我已将上述可观察集合绑定到我的视图中的组合框,如下所示。

       <ComboBox  Width="200" 
              ItemsSource="{Binding DataContext.MyData.Name,RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}"/>

还是说

BindingExpression 路径错误:在“对象”上找不到“名称”属性 ''ObservableCollection`1' (HashCode=22227061)'。 BindingExpression:路径=DataContext.MyData.Name;数据项='我的视图' (名称='');目标元素是 'ComboBox' (Name='');目标属性是 “ItemsSource”(类型“IEnumerable”)

我觉得这很奇怪。为什么它说可​​观察集合中没有 Name 属性?

【问题讨论】:

  • 将属性 Name 更改为其他内容,例如 DName 并尝试...

标签: wpf binding


【解决方案1】:

您收到该错误消息是因为属性路径 DataContext.MyData.Name 解析了 MyData 中的 Name 属性,该属性不存在且没有意义。

您应该将ItemsSource 属性绑定到项目集合,并将DisplayMemberPath 设置为项目类的Name 属性:

<ComboBox ItemsSource="{Binding DataContext.MyData,
                        RelativeSource={RelativeSource FindAncestor,
                                        AncestorType=UserControl}}"
          DisplayMemberPath="Name"/>

或者,您可以创建一个绑定到 Name 属性的 DataTemplate:

<ComboBox ItemsSource="{Binding DataContext.MyData,
                        RelativeSource={RelativeSource FindAncestor,
                                        AncestorType=UserControl}}"/>
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Name}"/>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2021-02-13
    • 2015-08-11
    • 2010-10-12
    相关资源
    最近更新 更多