【问题标题】:WPF Binding syntaxWPF 绑定语法
【发布时间】:2011-09-18 20:24:05
【问题描述】:

什么时候在路径中使用“/”符号? 我认为“/”仅在我们使用 XML 时使用,但今天看示例:

class ViewModel
{
    CollectionView Data {get;set;}
}

class BusinessObkect
{
    string Name {get;set;}
}

窗口的DataContext属性设置为ViewModel类的实例,ViewModel实例的Data属性用BusinessObject对象的集合初始化。

如果 TextBox 实例的 Text 属性 {Binding Path=Data/Name} 一切正常,但如果Text = {Binding Path=Data.Name} - 绑定错误。

当我必须使用“/”而不是“。”时在绑定路径中?

【问题讨论】:

    标签: c# wpf syntax binding path


    【解决方案1】:

    为什么不问the documentation

    属性的子属性可以通过类似于 C# 中使用的语法来指定。例如,子句 Path=ShoppingCart.Order 将绑定设置为对象或属性 ShoppingCart 的子属性 Order。

    当源是collection view 时,可以用斜杠 (/) 指定当前项。例如,子句 Path=/ 将绑定设置为视图中的当前项。当源是集合时,此语法指定默认集合视图的当前项。

    (为方便起见添加了收藏视图链接)

    这几乎是简洁和完整的。将. 表示法与集合一起用于其中一项的属性甚至没有意义。例如Collection.Date 而不是 Collection/Date(除非集合本身由于某种原因实际上具有 Date 属性)。

    【讨论】:

      【解决方案2】:

      Data 是一个集合时,你需要使用它。 / 获取 Data 集合的当前元素并返回其上的 Name 属性。

      【讨论】:

      • “[a] 集合的当前元素”是什么意思?我熟悉的所有集合类型都没有当前项目的概念。
      • 在这种情况下,他自己使用CollectionView,它已经有了。如果您使用 ObservableCollection<T>(或类似名称),WPF 引擎会将其包装到 CollectionView 中以提供必要的基础架构。
      猜你喜欢
      • 2011-03-11
      • 2011-01-30
      • 2023-03-18
      • 1970-01-01
      • 2011-08-16
      • 1970-01-01
      • 2013-03-22
      • 1970-01-01
      • 2012-12-06
      相关资源
      最近更新 更多