0
управления судном

Windows Store App XAML - Как получить значение текстового поля из page.i имеет для судоходства 2 страницы 1.MainPage.xaml 2.Infopage.xaml в MainPage У меня есть кнопка (чтобы получить значение TextBox InfoPage) и фрейм (для навигации по InfoPage). в InfoPage есть некоторые текстовые поля. Теперь как я могу получить значения InfoBage TextBoxWindows Store App XAML - Как получить значение текстового поля на странице

ответ

1

В дополнение к решению Нила, вот еще два способа, которыми вы также можете ссылаться.

Один из способов - определить статический параметр на infoPage и установить значение текущей страницы. Затем вы можете вызвать метод на infoPage от MainPage. Код нравится следующим образом:

infoPage

public static InfoPage Current; 
public InfoPage() 
{ 
    this.InitializeComponent(); 
    Current = this;  
} 
public string gettext() 
{ 
    return txttext.Text; 
} 

MainPage

private void btngetsecondpage_Click(object sender, RoutedEventArgs e) 
{ 
    InfoPage infopage = InfoPage.Current; 
    txtresult.Text = infopage.gettext(); 
} 

Более подробно о ApplicationData пожалуйста, ссылку на official sample.

Другой способ сохранить текст временно в ApplicationData.LocalSettings по адресу infoPage и прочитать текст на MainPage. Код нравится следующим образом:

infoPage

private void txttext_TextChanged(object sender, TextChangedEventArgs e) 
{ 
    ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings; 
    localSettings.Values["texboxtext"] =txttext.Text; // example value    
} 

MainPage

private void btngetsecondpage_Click(object sender, RoutedEventArgs e) 
{ 
    ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings; 
    if (localSettings.Values["texboxtext"] != null) 
    { 
     txtresult.Text = localSettings.Values["texboxtext"].ToString(); 
    } 
} 

Если у вас есть большое количество данных, лучший способ, чтобы создать локальный файл в качестве базы данных, а также использовать шаблон MVVM для записи данных в локальный файл с infoPage и привязки данных, сохраненных в базе данных, до MainPage. Более подробную информацию о MVVM в uwp вы можете указать this article.

+0

ничего себе!моя проблема решена путем этого Код первой страницы: public static FormFillPersonalinfo Current; public FormFillPersonalinfo() { this.InitializeComponent(); Current = this; } public string ffptitle() { return (Title.SelectedItem as FlipViewItem) .Content.ToString(); } public string ffpfirstname() { return FirstName.Text; } –

+0

второй кодовой страницы: частное аннулируются AppBarButton_Click (объект отправителя, RoutedEventArgs е) { mm.Text = FormFillPersonalinfo.Current.ffpbirthday(); } –

0

Самый простой способ - хранить значение из InfoPage для глобальной переменной внутри объекта App, а затем получить его в MainPage.

В App.xaml.cs, определить строку или список,

public string commonValue; 

В Инфостранице

<StackPanel Orientation="Vertical" VerticalAlignment="Center" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <TextBox Name="tb1" Text="Hello"/> 

В Инфостранице коде позади, мы сохраняем значение текстового поля к приложение.

 public InfoPage() 
    { 
     this.InitializeComponent(); 
     App app = Application.Current as App; 
     app.commonValue = tb1.Text; 
    } 

Тогда в MainPage:

<StackPanel VerticalAlignment="Center" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <Button Content="MainPage" Click="Button_Click"/> 
    <TextBox Name="textbox1"/> 

В коде MainPage позади, мы должны инициализировать Инфостраница затем получить значение:

public sealed partial class MainPage : Page 
{ 
    public MainPage() 
    { 
     this.InitializeComponent(); 
     InfoPage info = new InfoPage(); 
     info.InitializeComponent(); 
    } 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     App app = Application.Current as App; 
     textbox1.Text = app.commonValue; 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^