Fre*_*ald 4 mvvm caliburn.micro windows-phone-8.1
在Windows Phone 8.1上,我使用的是Caliburn.Micro视图模型优先方法,但由于视图模型无法了解视图,因此我无法看到如何将MediaCapture对象绑定到视图中的CaptureElement.
我有同样的问题.我正在使用MVVM Light和Windows Phone 8.1 WinRT(通用应用程序).
我使用ContentControl并绑定到CaptureElement:
<ContentControl HorizontalAlignment="Left"
Width="320" Height="140" Content="{Binding CaptureElement}"/>
Run Code Online (Sandbox Code Playgroud)
CaptureElement和MediaCapture是我的ViewModel中的属性:
private MediaCapture _mediaCapture;
public MediaCapture MediaCapture
{
get
{
if (_mediaCapture == null) _mediaCapture = new MediaCapture();
return _mediaCapture;
}
set
{
Set(() => MediaCapture, ref _mediaCapture, value);
}
}
private CaptureElement _captureElement;
public CaptureElement CaptureElement
{
get
{
if (_captureElement == null) _captureElement = new CaptureElement();
return _captureElement;
}
set
{
Set(() => CaptureElement, ref _captureElement, value);
}
}
Run Code Online (Sandbox Code Playgroud)
接下来我在ViewModel的构造函数中调用ConfigureMedia():
async void ConfigureMedia()
{
await MediaCapture.InitializeAsync();
CaptureElement.Source = MediaCapture;
await MediaCapture.StartPreviewAsync();
}
Run Code Online (Sandbox Code Playgroud)
首先初始化MediaCapture,然后设置Source,最后是StartPeview是很重要的.对我来说它有效:)