2012-03-14 1 views
0

Можно ли сделать глобальный (или общедоступный) контроль, чтобы каждое окно имело доступ к этому элементу управления, который находится в окне. Другими словами, как я могу получить доступ к этому элементу управления в окнах?Создание контроля «global»

+6

Возможно, вы не должны этого делать. –

ответ

2

Я не уверен, что ваши намерения, но мой догадка, что вы хотите обновить визуальное состояние (UI) экземпляра управления (назовем его C1) в окне (назовём это W1) от других элементов управления в других окнах.

Предполагая, что в этом случае платформа .NET уже имеет все необходимое: Events and Delegates.

Когда некоторые изменения данных в окне/управления, которые должны вызвать изменения в C1, что окно/контроль должен вести огонь событие, которое C1 прослушивает и обрабатывает с делегатом. Обновление пользовательского интерфейса произойдет в указанном делегате.

+0

Intension - сделать заголовок окна в качестве текста выбранного элемента списка в другом окне. Или, 'this.Title = listBox.SelectedItem.ToString();' – Shibli

+0

yep, это в значительной степени случай учебника для событий и делегатов. –

+0

Yep - поэтому определите событие в окне, содержащем listBox, с пользовательским подклассом EventArgs, содержащим заголовок, и подпишитесь на это событие в окне, которое вы хотите изменить в строке заголовка. Если оба окна были созданы с использованием одного потока, это, вероятно, все, что вам нужно сделать. – tomfanning

0

Я бы не сделать что-то подобное, но все-таки ...

Вы пытались установить атрибут элемента управления x:FieldModifier в public?