C# WPF文本块不更新
我有一个WPF项目,因为我有多个WPF窗口 在其中一个窗口中,我称之为Window2,我有一个文本块,如下所示:C# WPF文本块不更新,c#,wpf,C#,Wpf,我有一个WPF项目,因为我有多个WPF窗口 在其中一个窗口中,我称之为Window2,我有一个文本块,如下所示: <TextBlock Grid.Row="0" Name="motorTitle" Text="this is test" Visibility="Visible" Foreground="Red" Grid.Column="0" FontSize="20" HorizontalAlignment="Center"></TextBlock> 在另一个WPF窗
<TextBlock Grid.Row="0" Name="motorTitle" Text="this is test" Visibility="Visible" Foreground="Red" Grid.Column="0" FontSize="20" HorizontalAlignment="Center"></TextBlock>
在另一个WPF窗口中,我称之为MainWindow,我尝试通过这样做来更新Window2的文本
Window2.text = "my text";
因此,当我在调试模式下运行时,我可以看到Window2的文本变量更改为“我的文本”,但它不会更新为显示屏上的文本块
我试了一下,但什么也没找到
有什么想法吗?您可能应该对Textblock的text属性使用绑定,并实现INotifyPropertyChanged,如下所示:显示创建和启动计时器的代码。另外,您是否在计时器勾号中设置了断点以验证是否调用了该断点?代码表明启动计时器是此公共Dispatchermer timer=new Dispatchermer();timer.Interval=TimeSpan.From毫秒(300);timer.Tick+=定时器_Tick;timer.Start();是的,断点以“文本”的形式显示数据。您必须调试代码:计时器事件是否发生?然后告诉我们什么是
Window2
:它是一个实例吗?你确定它是同一个实例(新手经常创建new
实例,而不是使用正确的显示窗口)?另外,我会使用x:Name
而不是Name
,不要问我。计时器事件有效。Windows2是在MainWindow中创建的实例。当我尝试写入motorTitle.text=text时,我看到此错误;“调用线程无法访问此对象,因为其他线程拥有它。”
Window2.text = "my text";