2010-08-20 3 views

ответ

0

Вы можете использовать автоматизацию пользовательского интерфейса (который будет только позволит вам взаимодействовать с ним, как если бы вы были пользователем, нажав на/набрав в контрольной группе): http://msdn.microsoft.com/en-us/library/dd561932(VS.85).aspx

Или вы можете использовать код позади, чтобы передать ссылку от одного окна к другому, возможно, в вашем классе Application.

Нет ничего особенного в WPF, который делает любой вариант более простым или сложным в реализации.

0

salamonti, Вы хотите получить доступ к элементу управления на главной форме или данным, отображаемым элементом управления? Если последнее, я предлагаю вам хранить данные в отдельной области, кроме того, что ее представляет. Это может быть достигнуто с помощью MVVM и нескольких других схем разделения вида. Вы также можете использовать Маршрутизированные события и Маршрутизированные команды для выполнения кода в одной «форме» из другой.

Если вы хотите получить доступ к «основной форме» из дочерней формы, вы можете создать свойство в дочерней форме типа FrameworkElement, например. Затем, когда вы создаете дочернюю форму, просто заполните это свойство экземпляром основной формы. Таким образом, вы получите доступ к тому, что хотите в основной форме.

0

это крошечный образец связи между окнами в WPF

вы можете ссылаться на элементы управления, как, как вы делаете с полями класса, причиной того, что то, что они

public class Form1 : Window 
{ 
    public DateTime FormCreationDate {get; set;} 

    private void button1_Click(object sender, RoutedEventArgs e) 
    { 
     Form2 a = new Form2(); 
     a.Owner = this; 
     a.Show(); 
    } 
} 


public class Form2 : Window 
{ 
    private void Window_Loaded(object sender, RoutedEventArgs e) 
    { 
     this.label1.Content = string.Format(
      "the owner of this window was created on {0}", 
      ((Form1)this.Owner).FormCreationDate.ToString()); 
    } 
} 
Смежные вопросы