У меня есть MediaStreamSource
, который генерируется динамически, и я хочу привязываться к MediaElement. К сожалению, свойство Source
допускает только URI, поэтому мне не повезло.Bind MediaStreamSource to MediaElement
Существует способ SetSource
, который я могу вызвать в коде позади, но я не знаю, как это сделать, сохраняя шаблон MVVM.
У кого-нибудь есть способ привязать MediaElement к источнику?
Решение (Спасибо Клаус Йоргенсен)
я определить класс MainPageLoaded
для использования в качестве класса сообщений.
public class MainPageLoaded
{
public MediaStreamSource StreamSource
{
get;
set;
}
}
я затем отправить свое сообщение на мой взгляд, модель
var msg = new MainPageLoaded(){ StreamSource = new MediaStreamSource()};
Messenger.Default.Send<MainPageLoaded>(msg);
и получить его на мой взгляд
Messenger.Default.Register<MainPageLoaded>(this, (action) => SetSoundSource(action));
перед обработкой его
private void SetSoundSource(MainPageLoaded action)
{
SoundElement.SetSource(action.StreamSource);
}
Я в настоящее время использую MVVM свет, так что это очень полезно! –
С новой версией MVVM light вам больше не нужно выводить из MessageBase. Все может быть отправлено через мессенджер. –
О, блестящий блестящий. –