我是Xamarin和MVVM的新手。在我的应用程序中,我具有“选项卡式”页面,并且内部有两个子视图。我正在进行网络通话,并在第一个孩子的视图模型中从数据库获取数据。数据即将到来。我想将一些数据传递给第二个孩子(清单)。我能够正确传递数据。在我的第二个孩子中,我有一个按钮并调用了一个新页面。
第一个孩子的ViewModel ...
public async Task getFypDataAsync(string accessToken)
{
fypFullList = await _apiServices.GetFypData(accessToken);
fypFullList.Sort((x, y) => x.rank.CompareTo(y.rank));
fypSendList.AddRange(new List<FypRankData>(fypFullList.GetRange(0, 320)));
new HomeTab2(fypSendList); // send data to second child
}
列表的数据可在我的第二个孩子的构造函数中使用(后面的代码)。
后面有第二个孩子的代码。...
public partial class HomeTab2 : ContentPage
{
bool _istapped = false;
public List<FypRankData> mylist = new List<FypRankData>();
public HomeTab2()
{
InitializeComponent();
BindingContext = new HomeTabVM2();
var vm = BindingContext as HomeTabVM2;
vm.setFypData();
}
public HomeTab2(List<FypRankData> fypSendList)
{
mylist = fypSendList;
Debug.WriteLine(fypSendList.Count.ToString(), " list_yyycount ");
}
private async void Btn1_Clicked(object sender, EventArgs e)
{
if (_istapped)
return;
_istapped = true;
await Navigation.PushAsync(new ChartPage(mylist));
_istapped = false;
}
}
问题出现在按钮内部,单击我的列表为空。但是在构造函数内部,值正在分配。