如何实现Invoke方法?

时间:2010-11-02 17:21:35

标签: c# wpf invoke

我一直在搜索很多主题,但它已经太难理解了。我甚至没有看到这个.Invoke();方法

这是我的情景:

我有一个名为test1.xaml的UserControl,它有一个名为frame1

的帧控件

基本上test1.xaml.cs包含

public test1()
    {
        InitializeComponent();
           this.frame1.Content = new test();
    }

接下来,我有另一个名为test2.xaml的usercontrol,我希望它有一个名为button1的按钮。我想要发生的是当加载test2.xaml并且用户点击按钮时,我想将它的导航页面切换到下一页。

public test2()
    {

        InitializeComponent();
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        MainWindow MW = Application.Current.MainWindow as MainWindow;
        MW.label1.Content = MW.tabControl.SelectedIndex;
        TabItem page = MW.tabControl.SelectedItem as TabItem;
        test1 a = new test1();
        a.frame1.Navigate(new Uri(@"/UserControls/salesBtn.xaml", UriKind.Relative));

    }

这是我在test2.xaml.cs中的代码。现在我知道我在按钮点击事件上做错了,因为我只是实例化一个新的用户控件而不是引用不再运行的实际控件。我如何调用或如何使test1.xaml的框架导航到所述路径?

1 个答案:

答案 0 :(得分:3)

  
    

我只想操纵另一个类的控件属性

  

然后将其作为公共方法公开。

例如:

public class MyFirstObject {
  private string MyValue {get;set;}
  public void UpdateMyValue(string newValue) { MyValue = newValue; }
}

public class MySecondObject {
  MyFirstObject myFirstObject;
  public MySecondObject {
    myFirstObject = new MyFirstObject;
    myFirstObject.UpdateMyValue( "someNewValue" );
  }
}