私は、XamarinフォームとMVVMの初心者の問題に直面しています。私はタブページを持っていて、2ページがタグの下にあります。ここにコードがあります。
OnAppearingイベントの2回目.withタブ付きページ
問題はローカルです:tabbedPageをロードし、OnAppearing()イベントの下で二度のコードを実行されたときにActiveOrderViewPageページOnAppearing()イベントが二回発射されます。
なぜこれが起こっているのを見つけるのを助けてください?ここで
は、コードページ tabbedpage.xamlここ
<TabbedPage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
Title="Orders">
<TabbedPage.Children>
<local:ActiveOrderViewPage />
<local:SavedOrderViewPage />
</TabbedPage.Children>
tabbedpage.xaml.cs
public partial class OrderTabViewPage : TabbedPage
{
public OrderViewModel ViewModel { get { return BindingContext as OrderViewModel; } }
public OrderTabViewPage()
{
InitializeComponent();
this.BindingContext = ViewModelLocator.OrderVModel;
}
public OrderTabViewPage(params object[] arg) : this()
{
if (arg != null)
{
ViewModel.AccountID = Convert.ToInt32(arg[0]);
}
}
をタブ付きです
public partial class ActiveOrderViewPage : ContentPage
{
public OrderViewModel ViewModel { get { return BindingContext as OrderViewModel; } }
public ActiveOrderViewPage()
{
InitializeComponent();
this.BindingContext = ViewModelLocator.OrderVModel;
}
//public OrderViewPage() : this()
//{
// ViewModel.AccountID = accuntId;
//}
protected override void OnAppearing()
{
base.OnAppearing();
if (ViewModelLocator.OrderVModel.ActiveOrderItems == null || ViewModelLocator.OrderVModel.ActiveOrderItems.List.Count == 0)
{
ViewModelLocator.OrderVModel.ActiveOrderCommand.Execute(null);
}
}
.CSアクティブオーダーであります事前にありがとうございます...
を発射から
OnAppearing()
を停止する必要がありあなただけのコードを一度起動するようにしたい場合は、子ページを追加した後、nullに
currentpage
プロパティを設定するには、あなたが..becauseを試してみましたどのようなコードを追加してください可能性がありそれなしであなたの問題を構成することはできませんか? – stylishCoder私は両方のページのコードを追加しました。あなたは同じ問題を持っている – user2797910
を見てください...あなたはそれを修正するために管理しましたか? – MariusK