Xamarin Forms - 在另一页中访问变量

时间:2017-05-08 00:28:15

标签: c# xamarin xamarin.forms

我在MainPage.xaml.cs中有一个函数,当它被调用时,我想在另一个名为Dashboard.xaml.cs的页面中更改标签上的文本

如何在Xamarin Forms中的文件之间更改变量和调用函数?

3 个答案:

答案 0 :(得分: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
});

答案 1 :(得分:1)

如果您有对Page实例的引用,则可以在该实例上调用方法或设置属性。

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

但不要做其中任何一件事。使用Mvvm模式,绑定页面,让ViewModel相互通信。您的页面也会相应修改。

答案 2 :(得分:0)

Xamarin中的每个视图都是一个类,您可以实例化View类型的变量,其中View是您要访问的页面。例如:

我有一个名为Works的视图。要访问视图中包含的(公共)函数和变量,我编写如下代码:

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

执行Works视图中包含的函数,并将值返回给调用视图中的var。