Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как обратится к объектам при закрытии Cihld / 9 сообщений из 9, страница 1 из 1
19.01.2012, 16:40
    #37622660
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратится к объектам при закрытии Cihld
При закрытии Child выполняется функция
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    private void OnChildcooperClosed(object sender, EventArgs e)
        {
            Child_cooperation Childcooper = (Child_cooperation)sender;
            Childcooper.Title = "Подтверждение удаления кафедры3";
            bool? result = Childcooper.DialogResult;
            if (result.HasValue && result.Value)
            {
                Plan_Main Plan_m = new Plan_Main();
                if (Plan_m != null)
                {
                    Childcooper.Title = "Подтверждение";
                    Plan_m.label1.Content = "2";
                }
            }
        }


На Child_cooperation Title меняется значит заходит в if (Plan_m != null), а вот label1.Content на странице Plan_Main нет. В чем загвоздка? Спасибо
...
Рейтинг: 0 / 0
20.01.2012, 11:05
    #37623595
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратится к объектам при закрытии Cihld
Chek_FedorНа Child_cooperation Title меняется значит заходит в if (Plan_m != null),
а вот label1.Content на странице Plan_Main нет.
Plan_m у вас где отображается?
...
Рейтинг: 0 / 0
20.01.2012, 16:51
    #37624462
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратится к объектам при закрытии Cihld
Есть страница <navigation:Page...x:Class="Plan_Main"/>
грузится в
Код: sql
1.
2.
3.
4.
5.
 <dxdo:DocumentPanel  x:Name="paneDocument_plan_1" Caption="Document 1">
                        <local_page:Plan_Main>

                        </local_page:Plan_Main>
                    </dxdo:DocumentPanel>


еще одна страница "OpenPlan" подгружается в Frame на Child'e на этой страницы что-то делается при закрытии формируется строка из ID типа "1,2,4,5" которую я хочу передать в процедуру на сервере
Код: sql
1.
2.
3.
4.
5.
       Parameter p = new Parameter();
       p.Value = OpenPlan.str_block;
       p.ParameterName = "Idx";
       z_main_block_procDomainDataSource.QueryParameters.Add(p);
       z_main_block_procDomainDataSource.Load();


что бы нужные записи под грузились в "Plan_Main" после закрытия Child? но ни чего ни выходит если этот код выполнить по нажатии на button находящийся на "Plan_Main" то все получается.
...
Рейтинг: 0 / 0
25.01.2012, 02:39
    #37630022
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратится к объектам при закрытии Cihld
Нет ни каких соображений, как при закрытии Child внести изменения на "главной" страницы?
...
Рейтинг: 0 / 0
25.01.2012, 14:59
    #37630884
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратится к объектам при закрытии Cihld
Что то я там слишком все "сложно" написал. Все написанное свилось к одному вопросу как обратится к элементам находящихся на другой страницы? Или это не возможно?
...
Рейтинг: 0 / 0
25.01.2012, 17:11
    #37631298
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратится к объектам при закрытии Cihld
Chek_Fedor,

а зачем обращаться к другой форме, подпишитесь на событие закрытия окна в той странице где нужно что-то изменить.
...
Рейтинг: 0 / 0
25.01.2012, 18:12
    #37631435
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратится к объектам при закрытии Cihld
Есть страница MainPage
c
Код: sql
1.
<dxdo:DocumentPanel  x:Name="paneDocument_plan_1" Caption="Document 1">




куда грузится страница "MainPageLoad" с "Фреймом".
Код: sql
1.
2.
3.
4.
 <dxdo:DocumentPanel  x:Name="paneDocument_plan_1" Caption="Document 1">
                       <local_page:MainPageLoad HorizontalAlignment="Right" VerticalAlignment="Top" Loaded="MainPageLoad_Loaded">
                        </local_page:MainPageLoad>
 </dxdo:DocumentPanel>


так вот при нажатии на кнопку находящуюся на MainPageLoad
выполняется код
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    private void button1_Click(object sender, RoutedEventArgs e)
        {
            ChildWindow_Main Window_Plan = new ChildWindow_Main();
            Window_Plan.Closed += new EventHandler(OnChildcooperClosed);
            Window_Plan.ShowPage("/Plany/OpenPlan.xaml", 860, 565);
            Window_Plan.Show();
        }

           private void OnChildcooperClosed(object sender, EventArgs e)
        {
            ChildWindow_Main Childcooper = (ChildWindow_Main)sender;
            bool? result = Childcooper.DialogResult;
            if (result.HasValue && result.Value)
            {
                this.Frame_Window_Main.Navigate(new Uri("/Mainpage/Plan_Main.xaml", UriKind.RelativeOrAbsolute));
            }
        }


Как загрузить страницу

Код: sql
1.
this.Frame_Window_Main.Navigate(new Uri("/Mainpage/Plan_Main.xaml", UriKind.RelativeOrAbsolute));

при нажатии на кнопку находящеюся на MainPage
При добавлении Фрейма на MainPage
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
 <dxdo:DocumentPanel  x:Name="paneDocument_plan_1" Caption="Document 1">
                        <StackPanel>

                            <sdk:Frame Name="Frame_Window_Main" VerticalAlignment="Top" HorizontalAlignment="Left"  
                                   JournalOwnership="OwnsJournal" Navigated="Frame_Window_Main_Navigated" 
                                   NavigationFailed="Frame_Window_Main_NavigationFailed"/>
                        </StackPanel>
                    </dxdo:DocumentPanel>


ругается на код
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
   private void bOpen_ItemClick(object sender, DevExpress.Xpf.Bars.ItemClickEventArgs e)
        {
            ChildWindow_Main Window_Plan = new ChildWindow_Main();
            Window_Plan.Closed += new EventHandler(OnChildcooperClosed);
            Window_Plan.ShowPage("/Plany/OpenPlan.xaml", 860, 565);
            Window_Plan.Show();
        }

        private void OnChildcooperClosed(object sender, EventArgs e)
        {
            ChildWindow_Main Childcooper = (ChildWindow_Main)sender;
            bool? result = Childcooper.DialogResult;
            label1.Content = result.ToString();
            if (result.HasValue && result.Value)
            {
                this.Frame_Window_Main.Navigate(new Uri("/Mainpage/Plan_Main.xaml", UriKind.RelativeOrAbsolute)); //Пишет null
            }
        }
...
Рейтинг: 0 / 0
26.01.2012, 18:32
    #37633677
Chek_Fedor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратится к объектам при закрытии Cihld
Пытаюсь решить проблему пока четно если страница подгружается в "фрейм чилд окна" то спасает код
Код: sql
1.
2.
3.
4.
5.
6.
7.
ChildWindow childWindow = TreeHelper.FindVisualParent<ChildWindow>(this);
            if (childWindow != null)
            {
                kafedra Child_kafedra = new kafedra();
                Child_kafedra.Filter_combo(null);
                this.NavigationService.ShowPrevPage();
            }


т.е. я могу без проблем вызвать процедуру Filter_combo(null); находящуюся на страницы "kafedra".
Есть ли возможность аналогично вызвать процедуру если страница грузится в фрейм не принадлежащий ChildPage?
Спасибо.
...
Рейтинг: 0 / 0
06.02.2012, 14:18
    #37648660
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратится к объектам при закрытии Cihld
Chek_FedorЧто то я там слишком все "сложно" написал. Все написанное свилось к одному вопросу как обратится к элементам находящихся на другой страницы? Или это не возможно?
Возможно.
Суть в том, чтобы передать дочернему окну ссылку на элемент, к которому нужно обратиться. Потом можно свободно обращаться к этому элементу из дочернего окна.
авторChek_Fedor,
а зачем обращаться к другой форме, подпишитесь на событие закрытия окна в той странице где нужно что-то изменить.
Это второй вариант. Суть в том, чтобы подписаться на закрытие дочернего окна и взять то, что нужно, в коде главной страницы.
Второй вариант будет получше, т.к. не нужно левой ссылки на элемент главной страницы в коде дочернего окна.

Пример прилагаю.
В обработчике "Установить имя метки напрямую по ссылке" реализован первый вариант.
В обработчике "Установить имя метки в обработчике закрытия дочернего окна" реализован второй вариант.

Что касаемо 11970721 и 11978617 , то я ничего не понял, если честно. Если хотите, можно посмотреть что-нибудь по вашему конкретному коду, но для этого вам придется приложить конкретный тестовый проект, чтобы можно было запустить и поотлаживать.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Как обратится к объектам при закрытии Cihld / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]