Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.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# 将数据从ParentViewModel传递到ChildViewModel_C#_Tabs_Xamarin.android_Android Viewpager_Mvvmcross - Fatal编程技术网

C# 将数据从ParentViewModel传递到ChildViewModel

C# 将数据从ParentViewModel传递到ChildViewModel,c#,tabs,xamarin.android,android-viewpager,mvvmcross,C#,Tabs,Xamarin.android,Android Viewpager,Mvvmcross,我正在尝试将数据从视图模型(VM)传递到ParentViewPagerVM到ChildTabVM。在我的第一个虚拟机中,我得到了想要传递给ChildTabVM的数据。我找不到任何解决办法如何做到这一点 FirstViewModel.cs ParentViewPagerFragment.cs if(viewPager!=null) { var fragments=新列表 { 新MvxCachingFragmentStatePagerAdapter.FragmentInfo( “表1”、类型(Chi

我正在尝试将数据从视图模型(VM)传递到
ParentViewPagerVM
ChildTabVM
。在我的第一个虚拟机中,我得到了想要传递给
ChildTabVM
的数据。我找不到任何解决办法如何做到这一点

FirstViewModel.cs

ParentViewPagerFragment.cs

if(viewPager!=null)
{
var fragments=新列表
{
新MvxCachingFragmentStatePagerAdapter.FragmentInfo(
“表1”、类型(Child1Fragment)、类型(Child1ViewModel)),
新MvxCachingFragmentStatePagerAdapter.FragmentInfo(
“表2”、类型(Child2Fragment)、类型(Child2ViewModel)),
新MvxCachingFragmentStatePagerAdapter.FragmentInfo(
“表3”、类型化(Child3Fragment)、类型化(Child3ViewModel))
};
viewPager.Adapter=新的MvxCachingFragmentStatePagerAdapter(
活动、子片段管理器、片段);
}

由于我正在制作一个
选项卡
,我找不到一种方法将数据从我的
ParentViewPagerVM
传递到
Child1VM
。有什么想法吗?

MvxCachingFragmentStatePagerAdapter.FragmentInfo
构造函数提供了一个选项,用于将参数传递给要构造的ViewModel类型

public FragmentInfo(
    string title, 
    Type fragmentType, 
    Type viewModelType, 
    object parameterValuesObject = null);
实施示例

假设您的
ParentViewPagerViewModel
上有一个属性
ZipCode
,则可以作为参数传递

var fragments = new List<MvxCachingFragmentStatePagerAdapter.FragmentInfo>
{
     new MvxCachingFragmentStatePagerAdapter.FragmentInfo(
         title: "Tab1", 
         fragmentType: typeof(Child1Fragment), 
         viewModel: typeof(Child1ViewModel), 
         parameterValuesObject: new { zipCode = ViewModel.ZipCode})
};

MvxCachingFragmentStatePagerAdapter.FragmentInfo
constructor提供了一个选项,用于将参数传递给要构造的ViewModel类型

public FragmentInfo(
    string title, 
    Type fragmentType, 
    Type viewModelType, 
    object parameterValuesObject = null);
实施示例

假设您的
ParentViewPagerViewModel
上有一个属性
ZipCode
,则可以作为参数传递

var fragments = new List<MvxCachingFragmentStatePagerAdapter.FragmentInfo>
{
     new MvxCachingFragmentStatePagerAdapter.FragmentInfo(
         title: "Tab1", 
         fragmentType: typeof(Child1Fragment), 
         viewModel: typeof(Child1ViewModel), 
         parameterValuesObject: new { zipCode = ViewModel.ZipCode})
};

我可以在这一行上传递多个参数吗:
parameterValuesObject:new{zipCode=ViewModel.zipCode})
?没关系,我刚刚测试了多参数场景,它工作得很好。我可以在这一行上传递多个参数吗:
parameterValuesObject:new{zipCode=viewmode.zipCode})
?没关系,我刚刚测试了多参数场景,它工作得非常好。
var fragments = new List<MvxCachingFragmentStatePagerAdapter.FragmentInfo>
{
     new MvxCachingFragmentStatePagerAdapter.FragmentInfo(
         title: "Tab1", 
         fragmentType: typeof(Child1Fragment), 
         viewModel: typeof(Child1ViewModel), 
         parameterValuesObject: new { zipCode = ViewModel.ZipCode})
};
public void Init(int zipCode)
{
   // Do stuff with zipCode
}