私はxamarinフォームアプリケーションを持っています。 データを持つ2つのクラスがあり、ページの1つがデータを埋めています。Xamarinフォーム - ページとビュー間でデータを渡す
問題は次のとおりです。両方のクラスのデータを使用する新しいビューを作成しています。
私がよく知っている唯一の方法は、明らかに、同時に2 bindingContext
ができなかったため、ページ間でデータを渡すためにbindingContext
としてクラスを設定し、それがONEクラスで罰金働いています。
例:
ファーストクラス(すべてのクラスは、前のページで満たされているだけで、彼らが満たされていることを受け入れる。)
public class Buildings : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string _id;
public string Id
{
get { return _id; }
set
{
_id = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Id"));
}
}
}
2級
public class Flats : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string _num;
public string Num
{
get { return _num; }
set
{
_num = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Num"));
}
}
}
新しいビュー:
public partial class HouseView
{
private Flats _flats;
private Buildings _buildings;
public HouseView()
{
InitializeComponent();
}
private void HouseView_OnBindingContextChanged(object sender, EventArgs e)
{
var building = BindingContext as Building;
//var flat = BindingContext as Flat;
//_flat = flat;
_building = building;
var buildingInfo = await Rest.GetHouseInfo(_building.Id, _flat.Num); //function that will return info on a current house;
// rest code
}
}
私はパラメータを渡しているだけなので、ビューでバインディングコンテキストをバインドする必要はないでしょうか?私は解決策がかなりシンプルにできると思います。私はそれを把握できません....
あなたの状況はわかりません。あなたは例を挙げることができますか?どこでクラスを使用しますか、いくつのページがありますか?実際に何を達成しようとしているかによって、複数の解決策があります。 –
コンストラクタ、パブリックプロパティ、パブリックメソッドなどを介してクラス/ビューにデータを渡すことができます。これにはさまざまな方法があります。あなたが持っている問題が何であるかははっきりしていません。 – Jason