Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Запись из одного текстового поля в другое

6.0K
14 августа 2012 года
Ner
31 / / 23.11.2010
Добрый!

Создаю мастер на С# (Начало> , <Предыдущая Следующая> и т.д.).
На странице WizardPage2 есть текстовое поле, нажимается кн. "Обзор...".

Код:
public partial class WizardPage2
{
    . . .

    //Обработчик событий для кнопки "Обзор..."
      void BrowseButtonOnClick(object sender, RoutedEventArgs args)
      {
          DirectoryPage page = new DirectoryPage();
          page.Return += PageOnReturn;
          NavigationService.Navigate(page);
      }

    void PageOnReturn(object sender, ReturnEventArgs<String> args)
      {
        // txtboxFavoriteDir – это Name текстового поля страницы WizardPage2
        //(в XAML коде)
          txtboxFavoriteDir.Text = …………………………………; //сюда нужно записать текст
      }

    . . .
}
Открывается страница DirectoryPage, в текстовое поле которой, вводится како-то текст. При закрытии этого окна, текст из текстового поля страницы DirectoryPage должен попадать в текстовое поле страницы WizardPage2.

Код:
public partial class DirectoryPage : PageFunction<String>
{
      public DirectoryPage()
      {
          InitializeComponent();
        // txtbox – это Name текстового поля страницы DirectoryPage
    //(в XAML коде)
          txtbox.SelectionChanged += OnSelectionChanged;
      }
   
    //Обработчик события SelectionChanged
      void OnSelectionChanged(object sender, RoutedEventArgs args)
      {
         
      }

    //Обработчик кнопки "Да" для закрытия окна
      void OKButtonOnClick(object sender, RoutedEventArgs args)
      {
          OnReturn(new ReturnEventArgs<String>());
      }
}
Пытался работать через свойства, не вышло. Видимо способ работы с Page другой, чем с Windows. Пожалуйста, подскажите, что здесь можно сделать?
9.7K
18 августа 2012 года
Vitamant
228 / / 07.02.2011
Ох... Во-первых можно создать свои события и возвращать не некие мифические RoutedEventArgs, а вполне обычные string'и.
Во-вторых, можно создать общую "модель" - класс, хранящий в себе данные, и передавать его в конструктор всех элементов визарда.
В-третьих, можно хранить где-нибудь ссылку на страницу и обращаться к её свойствами\полям.

Наконец, в твоём случаем можно что-нибудь вроде:
 
Код:
void PageOnReturn(object sender, ReturnEventArgs<String> args)
      {
          txtboxFavoriteDir.Text = ((DirectoryPage)sender).txtbox.Text; // костыль, некрасиво, не безопасно, и вообще нехорошо, но почему бы и нет...
      }
6.0K
19 августа 2012 года
Ner
31 / / 23.11.2010
Vitamant, очень признателен. А какое решение было бы наиболее удачным? Спасибо.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог