Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF文本块不更新_C#_Wpf - Fatal编程技术网

C# WPF文本块不更新

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窗

我有一个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窗口中,我称之为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";