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

How can I bind source MediaCapture to CaptureElement without pattern?

我在 Windows Phone 8.1 上写申请。我正在使用没有模式的 MVVM。 我无法将 MediaCapture 对象绑定到视图中的 CaptureElement。 我知道这个话题重复了,但我尝试了这个解决方案

我的代码XAML:

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

在我的视图模型中:

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

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

由于您的代码不完整。我不确定你真正遇到了哪个问题。或者你只是不知道怎么写。我这里有一个完整的解决方案可以满足你requirements.I已经测试过了。

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();
    }

}

同时上传这个demohere,大家可以下载测试