首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XLabs国际奥委会与相机

XLabs国际奥委会与相机
EN

Stack Overflow用户
提问于 2015-05-03 16:43:00
回答 1查看 1.7K关注 0票数 1

我正在看https://github.com/XLabs/Xamarin-Forms-Labs/blob/master/Samples/XLabs.Sample/ViewModel/CameraViewModel.cs,试着让我的应用程序可以使用相机。

我有同样的设置,但是当我运行我的应用程序时,调用我的PCL的iOS应用程序会出现错误:

代码语言:javascript
复制
IResolver has not been set. Please set it by calling Resolver.SetResolver(resolver) method.

我不知道这意味着什么,也不知道我需要什么密码。我根本不使用国际奥委会,我也不太关心它,但我只是想让我的PCL可以使用这台相机。当我不在这里使用MVC时,我怎样才能让我的PCL可以使用这台相机。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-04 14:11:56

如果您希望使用ViewModel,那么修改构造函数以接受IMediaPicker:

https://github.com/XLabs/Xamarin-Forms-Labs/blob/master/Samples/XLabs.Sample/ViewModel/CameraViewModel.cs#L62

代码语言:javascript
复制
    public CameraViewModel(IMediaPicker mediaPicker)
    {
        this._mediaPicker = mediaPicker;
    }

删除安装函数:

https://github.com/XLabs/Xamarin-Forms-Labs/blob/master/Samples/XLabs.Sample/ViewModel/CameraViewModel.cs#L156-L167

如何将IMediaPicker实现应用于PCL取决于您。IoC是首选的(而且容易)的方式,但您也可以使用其他模式。一种方法是在Func<IMediaPicker>上定义一个静态ViewModel属性,并在平台特定的项目中设置它。

IoC容器是完成它的最简单、最快捷的方法,它只需在应用程序启动时添加这些行(例如AppDelegate的FinishedLaunching方法):

代码语言:javascript
复制
var container = new SimpleContainer();
container.Register<IMediaPicker, MediaPicker>();
Resolver.SetResolver(container.GetResolver());
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30016482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档