这似乎应该是非常基本的,但我似乎无法让它发挥作用。
我有一个名为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>
但它不起作用。
是否可以像这样直接绑定?
答案 0 :(得分:2)
如果您编写指示markup extension的{}
,则无法构造此类绑定,此外,您无法在绑定路径中拥有静态/共享成员。我认为正确的绑定是:
{Binding [0].Src, Source={x:Static ns:XMLSource.BrandItems}}
x:Static
是一个标记扩展,允许访问静态成员。 (请注意,这也允许访问字段,而不像Path
只允许公共属性)
在xmlns
attribute中声明ns
并指向XMLSource
类的命名空间。