2017-02-08 5 views
0

私はホームページ上のリストビュー内の項目のリストを入力するxamarinプロジェクトをビルドしました。このページの変数をViewModelクラスに渡す必要があります。それ、どうやったら出来るの???ヘルプは高く評価されます。私のViewModelクラスの私のホームページの変数にアクセスするには?

マイホームページのコードは以下の通りです:

プライベート非同期無効LstItems_OnItemTapped(オブジェクトo、ItemTappedEventArgs E)

{ 
     var ItemCodeParam = e.Item as Item; 

     var ItemCode = ItemCodeParam.ItemCode; 

     await Navigation.PushAsync(new DetailItemPage(ItemCode)); 

私はが私のViewModelクラスにをItemCode渡す必要があります。

} 

マイビューモデルは

名前空間MyFirstDbApp.ViewModels { パブリッククラスItemDetailsViewModel以下の通りである:INotifyPropertyChangedの { プライベートリスト_itemsList。あなたのVMを作成してください

public List<Item> ItemsList 



    { 
     get { return _itemsList; } 

     set 
     { 
      _itemsList = value; 
      OnPropertyChanged(); 
     } 
    } 

    public ItemDetailsViewModel() 
    { 

     InitializeDataAsync(); 
    } 


    private async Task InitializeDataAsync() 
    { 






     var result = await ItemServices.GetItemsAsync().ConfigureAwait(false); 

     ItemsList = result.Where(x => x.ItemCode == "").ToList(); 


    } 


    public event PropertyChangedEventHandler PropertyChanged; 

    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) 
    { 
     PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); 
    } 
} 

}

+0

?値をコンストラクタに渡すか、プロパティを設定するだけです。 – Jason

+0

これは本当におわかりです。しかし、私plsはコーディングでそれを行う方法を教えてもいいですか? VMコードを質問に含めました。私はホームページからVMにItemCodeを渡す必要があります。 ItemsList = result.Where(x => x.ItemCode == "").ToList(); – user1508599

答えて

0
public ItemDetailsViewModel(string ItemCode) 
{ 
    InitializeDataAsync(ItemCode); 
} 

private async Task InitializeDataAsync(string code) 
{ 
    var result = await ItemServices.GetItemsAsync().ConfigureAwait(false); 

    ItemsList = result.Where(x => x.ItemCode == code).ToList(); 
} 
+0

mscorlib.ni.dllで 'System.MissingMethodException'型の例外が発生しましたが、ユーザーコードで処理されませんでした 追加情報:このオブジェクトに対して定義されているパラメータのないコンストラクタはありません。 ホームページにコードを書く必要はありませんか? – user1508599

+0

DetailItemPageが読み込まれたときにVMを作成しているとしますか?あなたはそれを作成するときに、ItemDetailsViewModelコンストラクタにパラメータを渡していますか? – Jason

+0

いいえ、DetailItemPageがロードされたときにVMを作成していません。私は、私のホームページ上のlistviewのitem_tappedイベントでDetailItemPageを呼び出すだけです。私がそれをやるのを助けてください。私は単純に上記で与えたコードを書いた。 MVVM概念の初心者。それについてどうやって行くのか分かりません。これで私を助けてくれて本当に親切になります。 – user1508599

関連する問題