我需要更改TextBlock
的文本值,但是该值是在初始化渲染之前设置的。我能做什么?我建立了一个静态类来传递变量,但这似乎不起作用(我需要在渲染之前将变量初始化)。
private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
{
var name = "test";
StaticName.Static = (name);
}
public MainWindow()
{
InitializeComponent();
TextBlock.Text = StaticName.Static;
}
public static class StaticName
{
public static string Static { get; set; }
}
答案 0 :(得分:-1)
您的代码无法以这种方式工作,因为构造器总是在发生Loaded
事件之前 终止。因此,在构造函数内部,static
变量Static
的值仍为NULL。
要解决此问题,必须将TextBox
的初始化移到Loaded
事件处理程序中:
public MainWindow()
{
InitializeComponent();
this.Loaded += MainWindow_OnLoaded;
}
private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
{
SteamAPI.Init();
var name = SteamFriends.GetPersonaName();
personNameTextBox.Text = name;
}
这将使TextBox
在名称显示后立即显示。