2011-05-24 27 views
0

Я создал приложение браузера WPF и добавил страницу и окно. При нажатии кнопки на странице он открывает окно со списком деталей в DataGrid. Я хочу присвоить значения из DataGrid окна для элементов управления страницы.Доступ к элементам управления доступом из окна в WPF

Значения не присвоены управления Page с помощью следующего кода в окне кода позади (Window1.xaml.cs)

private void DataGrid1_MouseDoubleClick(object sender, MouseButtonEventArgs e) 
{ 
Page1 page = new Page1(); 
page.txtName.Text = "GridValue1"; 
this.Close(); 
} 

Когда я DoubleClick значения из Wiindow1 Datagrid должны быть назначены штурвалом Страница 1. Я не получаю правильный объект страницы для назначения txtName.text с значением DataGrid для Window1.

Большое спасибо заранее ...

ответ

0

Вы должны использовать MVVM architectural pattern в вашем приложении. Затем просто передайте/копируйте в окно ViewModel (который отвечает за сохранение значений и координацию между View и Model) между страницей и окном. Таким образом, вы сможете правильно обрабатывать синхронизацию в обоих направлениях.

UPDATE

В вашем случае в обработчике события вы должны идти вверх от DataGrid.Parent и так далее, пока вы не найти родительскую страницу. Вам нужно будет использовать this approach on finding visual parents.

+0

Я не хочу использовать шаблон MVVM. Я просто хочу правильный объект страницы. –

+0

См. Обновление. –

+0

Я установил как 'Window w = new Window(); w.Owner = this; w.Show(); '. Но в моем сценарии я вызываю окно WPF с страницы WPF. Как я могу это сделать? Это не работает для меня, чтобы установить страницу как родительский для окна .... –

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