2013-02-11 4 views
0

У меня есть одна страница вызовов Page 1 и на первой странице есть 1 Управление - метка - КнопкаКак изменить Контрактное текст окна WPF с другого окна WPF

По щелчку на кнопке я собираюсь открыть новый Wpf и в том, что есть кнопка, и при нажатии этой кнопки я хочу изменить текст метки первого окна.

LobbyStandardPopupView objLobbyStandardPopupView = new LobbyStandardPopupView(); 
objLobbyStandardPopupView.Show(); 

LobbyStandardView objLobbyStandardView = new LobbyStandardView(); 
objLobbyStandardView.Ring_Game.Text = "Hello"; 

Я пытаюсь создать объект и изменить значение управления, но его не удалось.

+0

не может делать изменения, но в окнах очереди процессов. Application.DoEvents(), чтобы увидеть изменения. Это всего лишь предложение, поскольку я не видел никакого кода? – CR41G14

+0

http://stackoverflow.com/questions/14788077/passing-data-between-two-instantiated-winforms-in-c-sharp/14788266#14788266 – Igoy

+0

Простая конструкция окна wpf. with opendialog() – ujjaval

ответ

6

На вашем вызывающему окне:

ChildWindow w = new ChildWindow(); 
w.Owner = this; //here your calling window 
w.Show(); 

На окне ребенка:

(this.Owner as YourMainWindow).YourProperty = "Your Text"; 

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

В вашем случае, используя страницу, добавьте proprerty к вашему LobbyStandardPopupView:

public LobbyStandardView mycallingpage = null; 
public LobbyStandardPopupView(LobbyStandardView callingPage) 
{ 
    InitializeComponent(); 
    mycallingpage = callingPage; 
} 

и в вашем случае кнопка:

mycallingpage.Ring_Game.Text = "Hello"; 
+0

Спасибо за ваш важный ответ, но я получаю эту ошибку. Ошибка Невозможно неявно преобразовать тип «ClientApplication.View.LobbyStandardView» в «System.Windows.Window» – ujjaval

+0

Свойство Owner - это окно. Поэтому вы должны установить его в окно. Объект LobbyStandardView - это страница? В конечном итоге в вашем всплывающем объекте создайте свойство, в котором вы храните ссылку на свою вызывающую страницу, например, вы вызываете OwnerPage. – michele

+0

На моей странице родительской кнопки нажмите: - LobbyStandardPopupView objLobbyStandardPopupView = новый LobbyStandardPopupView(); objLobbyStandardPopupView.Owner = Window.GetWindow (это); objLobbyStandardPopupView.Show(); теперь на моей дочерней кнопке нажмите ... ((LobbyStandardView) this.Owner as LobbyStandardView) .Ring_Game.Text = «Your Text»; но дайте мне ошибку cas t – ujjaval

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