如何在没有模式的情况下将源MediaCapture绑定到CaptureElement?

时间:2016-03-14 17:55:20

标签: c# mvvm windows-phone-8.1

我在Windows Phone 8.1上编写应用程序。我正在使用没有模式的MVVM。 我不能如何将MediaCapture对象绑定到视图中的CaptureElement。 我知道这个topi重复,但我尝试这个解决方案

我的代码XAML:

<ContentControl HorizontalAlignment="Left"         
Width="320" Height="140" Content="{Binding CaptureElement}"Margin="40,183,0,257"/>   

在我的viewModel中:

private CaptureElement _captureElement;
public CaptureElement CaptureElement
{
    get
    {
        return _captureElement;
    }

    set 
    { 
        _captureElement = value; OnChange("CaptureElement"); }
    }  
}

1 个答案:

答案 0 :(得分:0)

由于您的代码不完整。我不确定你真正遇到了哪个问题。或者你只是不知道如何写。我有一个完整的解决方案,可以满足您的要求。我已经测试过了。

XAML代码

    <ContentControl HorizontalAlignment="Left"  Width="320" Height="140" Content="{Binding CaptureElement}" Margin="40,183,0,257"/> 

MainPage()中的代码

MyViewModel view = new MyViewModel(); this.DataContext = view;         

以观看模式

class MyViewModel: NotificationBase
{
    private MediaCapture _mediaCapture;
    public MediaCapture MediaCapture
    {
        get
        {
            if (_mediaCapture == null) _mediaCapture = new MediaCapture();
            return _mediaCapture;
        }
        set
        { 
            _mediaCapture = value;
        }
    }
    private CaptureElement _captureElement;
    public CaptureElement CaptureElement
    {
        get
        {
            if (_captureElement == null) _captureElement = new CaptureElement();
            return _captureElement;
        }
        set
        {               
            _captureElement = value;
        }
    }

    public MyViewModel()
    {
        ConfigureMedia();
    }

    private async void ConfigureMedia()
    {
        await MediaCapture.InitializeAsync();
        CaptureElement.Source = MediaCapture;
        await MediaCapture.StartPreviewAsync();
    }

}

同时上传此演示javadoc,您可以下载进行测试。