Привязка данных Свойство WPF к переменной - PullRequest
0 голосов
/ 04 апреля 2011

У меня есть проект в WPF 4 и VB.net 2010. Я хочу связать свойство тома медиаэлемента с переменной другого модуля. Обратите внимание, переменная имеет правильный тип данных, поэтому преобразование не требуется. Как мне это сделать?

1 Ответ

2 голосов
/ 04 апреля 2011

Во-первых, убедитесь, что ваш код реализует INotifyPropertyChanged.

Пример здесь: http://www.codekeep.net/snippets/4c7ed2e5-7e3b-40b4-b976-d54b54d9bf5b.aspx

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

Во-вторых, вам нужно каким-то образом получить доступ к переменной из другого модуля в вашем коде, а затем сослаться на это в вашем коде, используя свойство,Примеры свойств здесь, если вы не знакомы:

http://www.xtremevbtalk.com/showthread.php?p=688701

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

Public Property Volume()
   Get
     Volume() = YourModuleVolume
   End Get

   Set(ByVal Value)
     YourModuleVolume = Value
             'Call NotifyPropertyChanged("Volume") here
   End Set
End Property

Я не могу вспомнить, автоматически ли код класса устанавливает себя как DataContext для пользовательского элемента управления, поэтому вы можете захотеть добавить «this.DataContext = this» или VB.NETэквивалент в вашем конструкторе.Обычно DataContext извлекается автоматически из вашей ViewModel.В основном это говорит об использовании указанного класса (он же код позади) в качестве источника для всех привязок данных.

Тогда в XAML это обычная привязка данных.

<YourControl Volume="{Binding Volume}" />

В качестве примечания,это действительно не то, как обычно нужно настраивать приложение WPF, поэтому этот сценарий немного странный.Если вы планируете многое сделать с WPF, возможно, вы захотите изучить ресурсы Джоша Смита по MVVM - это действительно предполагаемая архитектура приложения WPF.

Удачи!

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