Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Window Вернуть значение, DialogResult 
V
    Опции темы
DenWPF
Дата 30.8.2010, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



Как сделать что бы из окна возращалось значение string.

Полная задача. при нажатии на кнопку вылазил мой контрол на котором находиться TextBox и Button при нажатии на который окно закрывается а в окно которое вызывала этот контрол возращалось значение TextBox 
PM MAIL   Вверх
CasperSC
Дата 30.8.2010, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 27.11.2009

Репутация: 1
Всего: 1



Вызываем окно с вашим юзер контролом:
Код

    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            WindowUserContol control = new WindowUserContol(this);
            control.ShowDialog();
        }
    }


Код

    /// <summary>
    /// Логика взаимодействия для WindowUserContol.xaml
    /// </summary>
    public partial class WindowUserContol : Window
    {
        Window win;

        public WindowUserContol(Window varWin)
        {
            InitializeComponent();
            this.Closed += new EventHandler(WindowUserContol_Closed);
            win = varWin;
        }

        void WindowUserContol_Closed(object sender, EventArgs e)
        {
            if (win is MainWindow)
            {
                (win as MainWindow).textBlock.Text = this.textBox1.Text;
            }
        }
    }


Это сообщение отредактировал(а) CasperSC - 30.8.2010, 12:52
PM MAIL   Вверх
DenWPF
Дата 30.8.2010, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



а в локальную переменную не как?
PM MAIL   Вверх
jonie
Дата 30.8.2010, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 2
Всего: 118



DenWPF, ну передайте ref-ом string в конструктор и делайте что хотите с ним.. ну или сделайте public property и получайте его из вызывающего метода. В чем конкретно тут WPF?


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
DenWPF
Дата 30.8.2010, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



ну конкретно, думал про wpf может какая то реализация есть, а вот за ref спасибо забыл совсем.
PM MAIL   Вверх
DenWPF
Дата 2.9.2010, 15:37 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



ref не помог. так как структура такая 

Код

    public partial class Window_Return : Window
    {
        string path;
        public Window_Return(string label, ref string path)
        {
            InitializeComponent();

            this.Title = label;
            this.path = path;
        }

        private void okButton_Click(object sender, RoutedEventArgs e)
        {

            path = p_label.Text;
            this.Close();
        }
    }

так что придеться делать у вызывающего класса перемменую да ещё и статическую.
PM MAIL   Вверх
CYBERDREAM
Дата 2.9.2010, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 3
Всего: 28



Статикой? зачем, имхо не по фен шую это. 
А через свойства что мешает?
Код

    public partial class MainWindow : Window
    {
        ........
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            Child ch = new Child();
            if (ch.ShowDialog() == true)
                Title = ch.Msg;
        }
    }
//--------------------------------------- дочернее окно---------------
    public partial class Child : Window
    {
        public string Msg { get { return textBox1.Text; } }

                            ................
        void button1_Click(object sender, RoutedEventArgs e)
        {
            DialogResult = true;
        }

        
    }



Это сообщение отредактировал(а) CYBERDREAM - 2.9.2010, 16:35


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
DenWPF
Дата 4.9.2010, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



спасибо.

а когда это окно вылезит из памяти?


оно закрылось но данные ещё можно же вытаскивать...
надо самому закрывать?
PM MAIL   Вверх
jonie
Дата 4.9.2010, 13:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 2
Всего: 118



Цитата


а когда это окно вылезит из памяти?
вылезет и начнет захватывать мир? круто....
Цитата


оно закрылось но данные ещё можно же вытаскивать...
надо самому закрывать? 
как только ссылок на него не будет GC позаботится о памяти... 


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.1126 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.