类在代码中加载内容,但不显示在 WPF 的屏幕上
本文关键字:显示 WPF 屏幕 代码 加载 | 更新日期: 2023-09-27 18:31:11
我有一个名为Station*s*(强调s)的类,它包含另一个名为Station的类的3个实例。
Stations_View我有:
<Grid VerticalAlignment="Stretch" Margin="0,0,0,0" DataContext="{Binding ViewModel_Station1}" Grid.Row="0">
<Views:Station_View Grid.Row="0"/>
</Grid>
<Grid VerticalAlignment="Stretch" Margin="0,0,0,0" DataContext="{Binding ViewModel_Station2}" Grid.Row="0">
<Views:Station_View Grid.Row="0"/>
</Grid>
<Grid VerticalAlignment="Stretch" Margin="0,0,0,0" DataContext="{Binding ViewModel_Station3}" Grid.Row="0">
<Views:Station_View Grid.Row="0"/>
</Grid>
在Stations_ViewModel我构造了所有工作站实例,运行加载所有工作站实例的内容(属性,如名称等)的代码:
ViewModel_Station1 = new Station_ViewModel(_host, 1);
ViewModel_Station2 = new Station_ViewModel(_host, 2);
ViewModel_Station3 = new Station_ViewModel(_host, 3);
NotifyPropertyChanged("ViewModel_Station1");
NotifyPropertyChanged("ViewModel_Station2");
NotifyPropertyChanged("ViewModel_Station3");
但是,即使代码运行并且 Station 实例的属性确实已加载,也会在屏幕中显示为未加载(例如,Name 仍然是空字符串)。
奇怪的是,如果我创建一个只有一个Station_View类的窗口(而不是在Stations_View内),则所有内容都会加载并正常显示。
每个相关变量都声明为公共变量。
我稍微重新表述了一下。问题仍然存在,但后来我发现了一个简单的错误。
我的代码是:
public Station_ViewModel ViewModel;
但它必须是:
public Station_ViewModel ViewModel { get; set; }
如果希望数据的值可用于数据绑定,则需要将数据位于属性中。