如何在另一个班级中编辑另一个班级的文本?

时间:2019-01-04 22:21:50

标签: c# xamarin xamarin.forms

我想更改我从Entry的另一个班级转移过来的班级的文本,这是我的代码

public class contentPage:ContentPage
{
 public Entry TextEnrty;
 public Button doneButton;
 public contentPage()

{
   doneButton.Clicked+=doneButtonClicked;
   Content =new StackLayout
            {
                Children = {TextEntry,doneButton}
            }
}

private void doneButton_Clicked(object sender, System.EventArgs e)
    {
       App.Current.MainPage= new ContentPage2(TextEntry.text)
    }
}



public class ContentPage2:ContentPage
{
   public label TextLabel;
   public Button EditButton;
 public ContentPage2(string parameter)

{
    EditButton.clicked+=EditButtonClicked;
    TextLabel.Text = parameter;
   Content =new StackLayout
            {
                Children = {TextLabel,EditButton}
            }
  }

  private void EditButtonClicked(object sender, System.EventArgs e)
    {
       App.Current.MainPage= new contentPage()
    }

 }

根据在ContentPage中的TextEntry中输入Text时的代码,在单击doneButton之后,将TextEntry.Text作为参数发送到contentpage2,并且将值设置为等于TextLabel.Text,

现在,我想编辑TextLabel.text,但是由于我没有使用导航按钮位EditButton,所以在我重新编辑文本后,旧文本将不会显示在TextEntry中。

所以我的问题是,我希望当我回到chenge而不是空条目时显示旧文本。

2 个答案:

答案 0 :(得分:1)

为什么不像这样创建第二个构造函数:

contentPage(string entryText)
{
    InitializeComponent();

    TextEnrty.Text=entryText;
}

在secon类的行中,您将“导航”回到您的类,在创建新的contentPage实例时,请使用此新的Constructor。

答案 1 :(得分:0)

您应该尝试MVVM模式并在这两个视图之间共享viewmodel

<Application.Resources>
    <local:ViewModel x:Key="sharedViewModel" />
</Application.Resources>