2017-05-08 102 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彼此通信。而你的网页也会相应修改。