Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据从活动传递到ViewModel_C#_Mvvmcross - Fatal编程技术网

C# 将数据从活动传递到ViewModel

C# 将数据从活动传递到ViewModel,c#,mvvmcross,C#,Mvvmcross,我是使用MvvmCross的新手,我有一个问题。我想实现在活动中拍照,这是本机方式,但我不知道如何将数据传递给ViewModel 有一种方法可以做到这一点?将数据传递给ViewModel相当简单。如果您在活动中,并且假定它继承自MvxActivity或类似功能,则您将拥有可直接从其访问的ViewModel属性 这些活动还有通用版本,因此您不必自己键入castViewModel属性 因此,如果你有: public class MyActivity : MvxActivity<PictureV

我是使用MvvmCross的新手,我有一个问题。我想实现在活动中拍照,这是本机方式,但我不知道如何将数据传递给ViewModel


有一种方法可以做到这一点?

将数据传递给ViewModel相当简单。如果您在活动中,并且假定它继承自MvxActivity或类似功能,则您将拥有可直接从其访问的
ViewModel
属性

这些活动还有通用版本,因此您不必自己键入cast
ViewModel
属性

因此,如果你有:

public class MyActivity : MvxActivity<PictureViewModel>
{

}
这个
myData
对象可以是一个包含图片数据的字节数组

MvvmCross已经有了一个拍照插件,它使用内置的安卓摄像头来拍照。如果你加上

MvvmCross.Plugins.PictureChooser
对于Android和Core项目,您可以直接在
ViewModel
中使用
IMvxPictureChooserTask
,而不涉及任何其他内容:

public class PictureViewModel : MvxViewModel
{
    private IMvxPictureChooserTask _pictureTask;
    public PictureViewModel(IMvxPictureChooserTask pictureTask)
    {
        _pictureTask = pictureTask;
    }

    private byte[] _pictureBytes;

    // in some command:
    private void DoTakePicture()
    {
        _pictureTask.TakePicture(500, 500, stream => {
            _pictureBytes = ReadStream(stream);
        }, () => {});
    }
}

将数据传递到ViewModel相当容易。如果您在活动中,并且假定它继承自MvxActivity或类似功能,则您将拥有可直接从其访问的
ViewModel
属性

这些活动还有通用版本,因此您不必自己键入cast
ViewModel
属性

因此,如果你有:

public class MyActivity : MvxActivity<PictureViewModel>
{

}
这个
myData
对象可以是一个包含图片数据的字节数组

MvvmCross已经有了一个拍照插件,它使用内置的安卓摄像头来拍照。如果你加上

MvvmCross.Plugins.PictureChooser
对于Android和Core项目,您可以直接在
ViewModel
中使用
IMvxPictureChooserTask
,而不涉及任何其他内容:

public class PictureViewModel : MvxViewModel
{
    private IMvxPictureChooserTask _pictureTask;
    public PictureViewModel(IMvxPictureChooserTask pictureTask)
    {
        _pictureTask = pictureTask;
    }

    private byte[] _pictureBytes;

    // in some command:
    private void DoTakePicture()
    {
        _pictureTask.TakePicture(500, 500, stream => {
            _pictureBytes = ReadStream(stream);
        }, () => {});
    }
}

您是否在活动类中引用了ViewModel?您的ViewModel上是否有一些属性可以从活动中获取/设置?Mvvmcross使用约定在ViewModel和活动之间进行引用。我找不到如何将数据放入ViewModel。是否在活动类中引用ViewModel?您的ViewModel上是否有一些属性可以从活动中获取/设置?Mvvmcross使用约定在ViewModel和活动之间进行引用。我找不到如何将数据放入ViewModel。这就是我想要的。谢谢,这就是我想要的。谢谢