WPF C # Изменить содержимое кнопки из дочернего окна - PullRequest
0 голосов
/ 11 июля 2011

Я разрабатываю приложение с сенсорным экраном.У меня есть форма с кнопками с содержимым «новый плеер», а затем отображается клавиатура с текстовым полем для пользователя, чтобы ввести свое имя.Теперь мне нужно, чтобы при закрытии (или при вводе имени) кнопка из родительского окна меняла содержимое на имя, введенное пользователем.Но я не могу сделать привязку к родителю .. как я могу это сделать ??

Ответы [ 2 ]

1 голос
/ 11 июля 2011

Реализуете ли вы модель Model-View-ViewModel в своем приложении WPF или вообще используете привязку данных?

Вам не нужно использовать MVVM, но вы действительно должны каким-то образом использовать привязку данных.

При связывании данных вы бы привязали содержимое кнопки к строковому свойству некоторого объекта (модель представления в MVVM). Этот объект должен реализовывать интерфейс INotifyPropertyChanged. Вы можете привязать текстовое поле в дочернем окне к тому же свойству того же объекта.

При этом кнопка будет обновляться автоматически, когда пользователь вводит имя нового игрока.

Если вам нужно больше деталей, пожалуйста, прокомментируйте, и я буду рад уточнить.

0 голосов
/ 11 июля 2011

Вы можете попробовать что-то вроде:

var button = this.Parent.Controls.OfType<Button>().Select(b => b.Name == "NameOfControl").First();
button.Content = name;

Редактировать: И идея Джея - правильный путь для этого, я просто предлагал альтернативный способ доступа к элементам управления от их родителя с помощью LINQ.

...