绑定到类项

时间:2011-09-30 17:23:14

标签: wpf vb.net xaml data-binding

这似乎应该是非常基本的,但我似乎无法让它发挥作用。

我有一个名为XMLSource的类文件,如下所示:

Public Class XMLSource

    Public Shared BrandItems As New MediaItems

    Public Class MediaItems
        Inherits ObservableCollection(Of MediaObject)
        Implements INotifyPropertyChanged   
    End Class
End Class

Public Class MediaObject
    Public Property Name As String
    Public Property Title As String
End Class

应用程序读取XML文件并将一些项目存储到XMLSource.BrandItems中(在启动时发生)。

我想将Label控件的Content属性绑定到XMLSource.BrandItems(0).Name

我试过了:

<Label Content="{Binding Source={XMLSource},Path=.BrandItems[0].Src}" FontSize="20"></Label>

但它不起作用。

是否可以像这样直接绑定?

1 个答案:

答案 0 :(得分:2)

如果您编写指示markup extension{},则无法构造此类绑定,此外,您无法在绑定路径中拥有静态/共享成员。我认为正确的绑定是:

{Binding [0].Src, Source={x:Static ns:XMLSource.BrandItems}}

x:Static是一个标记扩展,允许访问静态成员。 (请注意,这也允许访问字段,而不像Path只允许公共属性)

xmlns attribute中声明ns并指向XMLSource类的命名空间。