无法从另一个 class 设置 MainWindow 拥有的 TextBox 文本
Unable to set a TextBox text owned by MainWindow from another class
我试图从同一命名空间中的另一个 class 设置 MainWindow (WPF Window) 拥有的文本框值文本,但没有任何反应。我已经对类似问题提出了许多建议和答案,但无济于事。令我困惑的是,MainWindow 的 SetText 接收显示在 Visual Studio 控制台中的文本,但对实际文本框没有任何影响。 'ConsoleLog' 文本框具有默认的 XAML 值。
所以我的 MainWindow 与此类似:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public string SetText
{
get { return ConsoleLog.Text; }
set {
Console.WriteLine(value);
ConsoleLog.Text = value;
}
}
}
在我的应用程序中 class:
public partial class App : Application
{
private void Test()
{
var mw = new MainWindow();
mw.SetText = "Please display something!";
}
}
我尝试了其他几种方法,例如:
((MainWindow)System.Windows.Application.Current.MainWindow).ConsoleLog.Text = "Please display something!";
但到目前为止没有任何错误消息,没有任何效果。
我是 WPF C# 的新手,我确信这是我遗漏的很明显的东西,但它让我发疯。
WPF 项目默认项目通过配置其 App.xaml 文件启动 MainWindow,而不是 app.xml.cs。如果你想访问 MainWindow ,你应该通过以下代码手动启动 MainWindow
public App()
{
var mw = new MainWindow();
mw.SetText = "Please display something!";
mw.ShowDialog();
}
并从 App.xaml
中删除以下行
StartupUri="MainWindow.xaml"
如果你想开始使用 WPF 应用程序并制作一个好的应用程序,我建议你看一些基础教程,并尝试学习 MVVM(或 Web 中的 MVC)编程方法。
我试图从同一命名空间中的另一个 class 设置 MainWindow (WPF Window) 拥有的文本框值文本,但没有任何反应。我已经对类似问题提出了许多建议和答案,但无济于事。令我困惑的是,MainWindow 的 SetText 接收显示在 Visual Studio 控制台中的文本,但对实际文本框没有任何影响。 'ConsoleLog' 文本框具有默认的 XAML 值。
所以我的 MainWindow 与此类似:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public string SetText
{
get { return ConsoleLog.Text; }
set {
Console.WriteLine(value);
ConsoleLog.Text = value;
}
}
}
在我的应用程序中 class:
public partial class App : Application
{
private void Test()
{
var mw = new MainWindow();
mw.SetText = "Please display something!";
}
}
我尝试了其他几种方法,例如:
((MainWindow)System.Windows.Application.Current.MainWindow).ConsoleLog.Text = "Please display something!";
但到目前为止没有任何错误消息,没有任何效果。
我是 WPF C# 的新手,我确信这是我遗漏的很明显的东西,但它让我发疯。
WPF 项目默认项目通过配置其 App.xaml 文件启动 MainWindow,而不是 app.xml.cs。如果你想访问 MainWindow ,你应该通过以下代码手动启动 MainWindow
public App()
{
var mw = new MainWindow();
mw.SetText = "Please display something!";
mw.ShowDialog();
}
并从 App.xaml
中删除以下行StartupUri="MainWindow.xaml"
如果你想开始使用 WPF 应用程序并制作一个好的应用程序,我建议你看一些基础教程,并尝试学习 MVVM(或 Web 中的 MVC)编程方法。