Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我是否可以通过“初始化组件”从其他页面初始化另一个contentpage;点击";例如_C#_Xamarin_Xamarin.forms - Fatal编程技术网

C# 我是否可以通过“初始化组件”从其他页面初始化另一个contentpage;点击";例如

C# 我是否可以通过“初始化组件”从其他页面初始化另一个contentpage;点击";例如,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,您是否可以通过单击(从另一个页面)来“重新启动”/初始化页面?我正在使用一个包含主细节页和内容页的rootpage,我希望他们不要像现在这样一起初始化组件。 如果初始化组件问题不可行,则可以选择(如果可能)使用母版详细信息页图标创建clickevent 当然,如果我能以某种方式把这两页分开会更方便。我试图想出下面的东西,将初始化另一个页面组件 button.Clicked += (object sender, EventArgs e) => { var ourStartPage = new

您是否可以通过单击(从另一个页面)来“重新启动”/初始化页面?我正在使用一个包含主细节页和内容页的rootpage,我希望他们不要像现在这样一起初始化组件。 如果初始化组件问题不可行,则可以选择(如果可能)使用母版详细信息页图标创建clickevent

当然,如果我能以某种方式把这两页分开会更方便。我试图想出下面的东西,将初始化另一个页面组件

button.Clicked += (object sender, EventArgs e) => {
var ourStartPage = new StartPage ();
ourStartPage.InitializeComponent ();

}

只需在页面中创建一个公共方法,并让它调用InitializeComponent。我不认为这样处理页面生命周期是一个好主意,但从技术上讲,没有什么可以阻止您这样做。但是我如何访问其他页面初始化组件?当我执行上述代码时,当我当前在Masterdetailpage页面中工作时,我无法访问(例如)startpages Initializecomponent。我只能编写它并初始化当前页面和当前组件。也许我误解了你对公共方法的意思。你知道当我通过log System.Diagnostics.Debug.Writeline(“测试”)对其进行测试时它为什么会工作吗;但是,当我尝试改变标签的文本时,它不会改变吗?你是在尝试从公共方法来改变吗?我猜你不是在UI线程上调用它,就是调用了错误的页面实例。我都试图加载我想要加载的特定函数,也加载了整个页面(initializecomponent),但奇怪的是,它只在我测试它时在日志中起作用。但是当我试图让事情变得可见/改变文本等等的时候。什么也没发生。如果你觉得有点离题的话,今晚晚些时候我可以写一篇新文章。我遵循你的密码。当我通过日志对它进行测试时,它达到了这个功能,但当我尝试进行实际更改时,它不会运行。
public class Page1 : ContentPage {

  public Page1() {

    // comment out the default InitializeComponent()
    // InitializeComponent();
  }

  // create a public method to do the init instead
  public void InitThisPage() {

    InitializeComponent();
  }

}