2015-07-27 13 views
1

Мне нужно передать значение дочернему окну. В дочернем окне есть два текстовых поля. Мне нужно показать значение в окне дочернего окна. Текстовое поле, пока оно открывается.Значение передачи для формы дочернего окна Родительская страница

Я попробовал следующий путь, мой ребенок класс окна следующим образом,

public partial class ChildWindow:ChildWindow 
    { 
    public int abc {get;set;} 
    public string value{get;set;} 
    public ChildWindow() 
    { 
    InitializeComponent();   
    this.txtbox1.Text = abc ; 
    this.txtbox2.Text = value; 
    } 

    private void OKButton_Click(object sender, RoutedEventArgs e) 
    { 
    this.DialogResult = true; 

    } 

    private void CancelButton_Click(object sender, RoutedEventArgs e) 
    { 
    this.DialogResult = false; 
    } 

    } 

Мой родительское окно следующим образом,

private void EditButton_Click(System.Object sender, System.Windows.RoutedEventArgs e) 
    { 
    ChildWindow child= new ChildWindow(); 
    child.abc = 1; 
    child.alue = "Hello" 
    child.show(); 
    } 

Как я могу отобразить элементы управления дочернего окна со значениями (что получать от Родительского), пока его открытие?

ответ

1

Вы можете изменить следующее:

public int abc {get;set;} 
public string value{get;set;} 

To:

public int abc 
{ 
    get 
    { 
     int result = 0; 
     int.TryParse(this.txtbox1.Text, out result); 
     return result; 
    } 
    set 
    { 
     this.txtbox1.Text = value; 
    } 

} 


public string value 
{ 
    get 
    { 
     return this.txtbox2.Text; 
    } 
    set 
    { 
     this.txtbox2.Text = value; 
    } 

} 

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

+0

Большое спасибо ... Это то, чего я ожидал точно –

1

Вы можете создать overload из constructor.

public ChildWindow(string abc,string value) 
{ 
InitializeComponent();   
this.txtbox1.Text = abc ; 
this.txtbox2.Text = value; 
} 

чем создать object из childwindow как это

ChildWindow child= new ChildWindow("abc","somevalue");