Привязка к предмету класса - PullRequest
       0

Привязка к предмету класса

0 голосов
/ 30 сентября 2011

Кажется, что это должно быть действительно просто, но я не могу заставить его работать.

У меня есть файл класса с именем 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 (происходит при запуске).

Я хочу связать свойство Content элемента управления Label с XMLSource.BrandItems (0). Имя

Я пытался:

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

Но это не работает.

Возможно ли связывать напрямую, как это?

1 Ответ

2 голосов
/ 30 сентября 2011

Вы не можете создавать привязки, подобные этой, если вы напишите {}, который указывает расширение разметки , в дальнейшем вы не сможете иметь статические / общие члены в пути привязки. Я думаю, что правильная привязка будет:

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

x:Static - расширение разметки, которое позволяет получить доступ к статическим элементам. (Обратите внимание, что это также позволяет получить доступ к полям в отличие от Path, который допускает только открытые свойства)

Где ns объявлен в атрибуте xmlns и указывает на пространство имен вашего XMLSource класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...