2017-05-08 65 views

回答

2

頁面只是類,你可以像任何類別之間的溝通:使用公共方法,公共性,公共事件等

但是,使用窗體的內置MessagingCenter可能是最好的方法:

// send a message TO an instance of MyPage 
MessagingCenter.Send<MyPage, string> (this, "MessageName", some_string_arg); 

// in MyPage, listen for the Message 
MessagingCenter.Subscribe<MyPage> (this, "MessageName", (sender, args) => { 
    // args will contain the value passed in Send 
}); 
+0

謝謝傑森這是我正在尋找 –

0

Xamarin中的每個視圖都是一個類,您可以實例化一個View類型的變量,其中View是您想要訪問的頁面。例如:

我有一個叫Works的視圖。要包含在視圖中訪問(公共)函數和變量,我寫這樣的代碼:

Works MyTestVariable; 
var SomeResult = MyTestVariable.FunctionInWorksClass(aParameter); 

中包含的工程視圖功能被執行,值返回到調用視圖的變種。

+0

你可以發佈你的「調用視圖」的例子嗎? 我想看看你如何處理返回值。 – tmighty

1

假設您有一個頁面實例的引用,您可以調用該實例的方法或設置屬性。

在2.3.6中,您甚至可以設置x:FieldModifier並直接修改字段值。

但是不要這樣做。使用Mvvm模式,綁定頁面,並讓ViewModel彼此通信。而你的網頁也會相應修改。