我在MainPage.xaml.cs中有一个函数,当它被调用时,我想在另一个名为Dashboard.xaml.cs的页面中更改标签上的文本
如何在Xamarin Forms中的文件之间更改变量和调用函数?
答案 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。