我有一个包含MainWindow.xaml、MainWindow.xaml.cs和Helper.cs文件的程序。所有UI都在.xaml文件中,只能从. xaml.cs文件访问。但现在我想将MainWindow.xaml文件中TextBox中的文本从Helper.cs文件中更改,这是完全独立的。
我试过在MainWindow.xaml.cs中创建一个函数来实现这一点:
public void SetRNrInfoText(string value)
{
this.RNrInfoTextBox.Text = value;
}
或
public string RNrInfoText
{
get { return this.RNrInfoTextBox.Text; }
set { this.RNrInfoTextBox.Text = value; }
}
在Helper.cs文件中,我用途:
public static void searchByRNR()
{
MainWindow mainWindow = new MainWindow();
mainWindow.SetRNrInfoText("new text");
}
但是,当我尝试调用这个searchByRNR函数时,什么也没有发生,在.xaml文件中,“x:FieldModifier”被设置为“public”。
目前,我唯一的想法是让Helper返回一个字典或数组,然后在MainWindow中,将所有值设置为特定的文本框,但我真的不喜欢这个想法。
所以问题是,我能不能以某种方式更改另一个.cs文件中的.xaml元素的属性,还是不可能?”
1条答案
按热度按时间qhhrdooz1#
MainWindow mainWindow = new MainWindow();
创建了MainWindow
类的新示例,但这不是您想要的。您需要以某种方式获取对
Helper
类中已经存在的MainWindow
示例的引用。最简单的方法可能是将
App.xaml.cs
中m_window
字段的修饰符更改为建议的here。然后,您可以在
Helper
类中获取对该窗口的引用,如下所示: