我想更改我从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而不是空条目时显示旧文本。
答案 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>