C# 将数据从ParentViewModel传递到ChildViewModel
我正在尝试将数据从视图模型(VM)传递到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
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
}