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

C# 如何在没有模式的情况下将源MediaCapture绑定到CaptureElement?,c#,mvvm,windows-phone-8.1,C#,Mvvm,Windows Phone 8.1,我在WindowsPhone8.1上编写应用程序。我使用的是没有模式的MVVM。 我无法确定如何将MediaCapture对象绑定到视图中的CaptureElement。 我知道这个话题重复了,但我尝试了这个解决方案 我的代码XAML: <ContentControl HorizontalAlignment="Left" Width="320" Height="140" Content="{Binding CaptureElement}"Margin="40,183,0,

我在WindowsPhone8.1上编写应用程序。我使用的是没有模式的MVVM。 我无法确定如何将MediaCapture对象绑定到视图中的CaptureElement。 我知道这个话题重复了,但我尝试了这个解决方案

我的代码XAML:

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

因为你的代码不完整。我不确定你到底遇到了什么问题。或者你就是不知道怎么写。我这里有一个完整的解决方案,可以满足您的要求。我已经测试过了

XAML代码

    <ContentControl HorizontalAlignment="Left"  Width="320" Height="140" Content="{Binding CaptureElement}" Margin="40,183,0,257"/> 
在视图模式下

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

}

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

因为您的代码不完整。我不确定你到底遇到了什么问题。或者你就是不知道怎么写。我这里有一个完整的解决方案,可以满足您的要求。我已经测试过了

XAML代码

    <ContentControl HorizontalAlignment="Left"  Width="320" Height="140" Content="{Binding CaptureElement}" Margin="40,183,0,257"/> 
在视图模式下

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

}

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

非常感谢!在你的帮助下,我解决了这个问题,非常感谢你!在你的帮助下,我解决了这个问题