我正在 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 类型。您可以在此处进行验证。
<MediaElement Source="{Binding MediaUri}" />
其中 MediaUri 定义为
public Uri MediaUri {get;set; }
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句