将 mediaelement 绑定到 viewmodel
Bind mediaelement to viewmodel
我正在 wpf 中使用 Caliburn Micro 进行一个大项目。
我做了一个应该看电影的视图。
我正在尝试将 MediaElement Source 绑定到我的 ViewModel 中的文件。
我的视图如下所示:
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Items}">
<ContentControl cb:View.Model="{Binding}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</controls:ExtendedTreeView>
<MediaElement Source="media" Visibility="{Binding IsIndexVisible, Converter={StaticResource InvertBoolToHiddenConverter}}" />
在我的视图模型中:
public override void NavigateEnter()
{
//base.NavigateEnter();
if (CanExpand)
{
base.Expand();
return;
}
if (SelectedItem == null) return;
var media = new MediaElement();
media.LoadedBehavior = MediaState.Manual;
media.Source = new Uri(@"C:/Users/v80770/Desktop/Movies/ATTV_bog.mpg");
media.Play();
}
private Uri _mediaUri;
public Uri MediaUri
{
get
{
return _mediaUri;
}
set
{
_mediaUri = value;
NotifyOfPropertyChange(() => MediaUri);
}
}
public override void NavigateEnter()
{
//base.NavigateEnter();
if (CanExpand)
{
base.Expand();
return;
}
if (SelectedItem == null) return;
var test = (@"C:/Users/v80770/Desktop/Movies/ATTV_bog.mpg");
var mediauri = new Uri(test);
_mediaUri = mediauri;
IsIndexVisible = false;
}
但是当我开始我的项目时,什么也没有显示。
您需要将 Uri 绑定为媒体元素的源。源依赖项 属性 需要 Uri 类型。你可以验证一下here.
<MediaElement Source="{Binding MediaUri}" />
其中 MediaUri 定义为
public Uri MediaUri {get;set; }
我正在 wpf 中使用 Caliburn Micro 进行一个大项目。 我做了一个应该看电影的视图。 我正在尝试将 MediaElement Source 绑定到我的 ViewModel 中的文件。
我的视图如下所示:
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Items}">
<ContentControl cb:View.Model="{Binding}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</controls:ExtendedTreeView>
<MediaElement Source="media" Visibility="{Binding IsIndexVisible, Converter={StaticResource InvertBoolToHiddenConverter}}" />
在我的视图模型中:
public override void NavigateEnter()
{
//base.NavigateEnter();
if (CanExpand)
{
base.Expand();
return;
}
if (SelectedItem == null) return;
var media = new MediaElement();
media.LoadedBehavior = MediaState.Manual;
media.Source = new Uri(@"C:/Users/v80770/Desktop/Movies/ATTV_bog.mpg");
media.Play();
}
private Uri _mediaUri;
public Uri MediaUri
{
get
{
return _mediaUri;
}
set
{
_mediaUri = value;
NotifyOfPropertyChange(() => MediaUri);
}
}
public override void NavigateEnter()
{
//base.NavigateEnter();
if (CanExpand)
{
base.Expand();
return;
}
if (SelectedItem == null) return;
var test = (@"C:/Users/v80770/Desktop/Movies/ATTV_bog.mpg");
var mediauri = new Uri(test);
_mediaUri = mediauri;
IsIndexVisible = false;
}
但是当我开始我的项目时,什么也没有显示。
您需要将 Uri 绑定为媒体元素的源。源依赖项 属性 需要 Uri 类型。你可以验证一下here.
<MediaElement Source="{Binding MediaUri}" />
其中 MediaUri 定义为
public Uri MediaUri {get;set; }