C# 从类调用方法到窗口
在WPF中,我得到了一个窗口,其中有一个按钮和一个大的文本块,在这个类中,我得到了一个公共方法,该方法将文本设置为窗口中的文本块。问题是,这不起作用,我很不明白为什么。代码如下所示: 在MainWindow.xaml.cs中C# 从类调用方法到窗口,c#,wpf,C#,Wpf,在WPF中,我得到了一个窗口,其中有一个按钮和一个大的文本块,在这个类中,我得到了一个公共方法,该方法将文本设置为窗口中的文本块。问题是,这不起作用,我很不明白为什么。代码如下所示: 在MainWindow.xaml.cs中 private void GoButton_Click(object sender, RoutedEventArgs e) { Watcher watcher = new Watcher(); watcher.StoryMode(
private void GoButton_Click(object sender, RoutedEventArgs e)
{
Watcher watcher = new Watcher();
watcher.StoryMode();
}
下面是《课堂观察者》中的公共void故事模式:
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);
}
每次我点击按钮时,什么都没有发生,当我尝试调试时,我可以看到它从Watch类调用函数,但什么都不做。当我尝试相同的代码时,但在Watch类之外,在主窗口内,如下所示:
private void GoButton_Click(object sender, RoutedEventArgs e)
{
string text1 = @"C:/Users/Desktop/Folder/1.txt";
string mainText;
mainText = text1;
textBlock_story.Text = File.ReadAllText(mainText);
}
一切都很好,但我觉得这不是我想要的
有人能解释一下为什么会发生这种情况,以及如何为这个问题找到更好的解决方案吗?您的窗口类需要创建一个watcher类的实例。然后它应该从watcher类中提取文本数据
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;
}
}
您是否尝试过将watcher设置为主窗口的成员并对其进行如下初始化:watcher=new watcher;例如,在MainWindow的构造函数中?MainWindow是窗口的一个新实例,如果您希望更改当前显示的窗口内容,则不会发生这种情况。如果你想显示一个新窗口,那么别忘了给show打电话。而且…嗯…实际上应该有一个ViewModel,而不是一个填充UI控件内容的单独类