У меня есть MediaStreamSource
, который генерируется динамически, и я хочу привязать к MediaElement.К сожалению, свойство Source
принимает только URI, поэтому мне не повезло.
Существует метод 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);
}