[英]MVVM Passing data between two views / view models
我有兩個頁面:
和兩個具有相同屬性的 ViewModel:
現在我想在 ViewModel1 到 ViewModel2 之間傳遞數據(屬性),並在第 2 頁上檢索這些數據。我該如何實現?
您可以使用兩個視圖模型都繼承自的父 ViewModel 或事件聚合器。 這是一個使用 Reactive Extensions 的簡單方法。
您的頁面可以這樣構建:
public class Page2 {
public ViewModel1 VM1;
public Page2() {
VM1 = new ViewModel1(new ViewModel2());
}
}
您的ViewModel1
可能看起來像這樣,具有傳遞屬性:
public class ViewModel1 : Person {
private ViewModel2 _vm2;
public ViewModel1(ViewModel2 vm2) {
_vm2 = vm2;
}
public override string FirstName {
get { return _vm2.FirstName; }
}
public override string LastName {
get { return _vm2.LastName; }
}
}
我們假設您的ViewModel2
有一些業務邏輯或其他東西
public class ViewModel2 : Person {
//Etc
}
兩者都繼承自同一個基類:
public abstract class Person {
public abstract string FirstName { get; }
public abstract string LastName { get; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.