从类到窗口的调用方法

时间:2017-09-25 19:47:08

标签: c# wpf

在WPF中,我有一个窗口,其中有一个按钮和一个大文本块,以及我在其中有一个公共方法的类,该方法将文本设置为窗口中的文本块。问题是,这不起作用,我不明白为什么。代码如下所示:

在MainWindow.xaml.cs

self.view

这是来自Watcher类的公共虚空StoryMode:

  private void GoButton_Click(object sender, RoutedEventArgs e)
    {
        Watcher watcher = new Watcher();
        watcher.StoryMode();
    }

每当我点击按钮时,没有任何反应,当我尝试调试时,我可以看到它从Watch类调用该函数,但根本不做任何事情。当我尝试相同的代码,但在Watch类之外,在MainWindow内部就像这样:

    string text1 = @"C:/Users/Desktop/Folder/1.txt";
    string mainText;
    MainWindow mw = new MainWindow();

    public void StoryMode()
    {
            mainText = text1;
            mw.textBlock_story.Text = File.ReadAllText(mainText);
    }

一切正常,但在这种情况下,我并不是我想要的东西。

有人可以解释一下为什么会发生这种情况以及如何为这个问题找到更好的解决方案?

1 个答案:

答案 0 :(得分:0)

您的窗口类需要创建观察者类的实例。然后它应该从观察者类中提取文本数据。

 class Watcher
{
    public string mainText;
    void StoryMode()
    {
        mainText = "Example Text";
    }

}

    public partial class MainWindow : Window
{
    string texblock_story_text;
    public MainWindow()
    {
        InitializeComponent();          
    }

    void Get_Text()
    {
        Watcher MyWatcher = new Watcher();
        texblock_story_text = MyWatcher.mainText;
    }


}