类在代码中加载内容但在WPF中的屏幕上不显示

时间:2013-09-13 19:13:27

标签: c# wpf visual-studio-2010 xaml mvvm

我有一个名为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上我构造了所有的Station实例,运行代码来加载所有Station实例的内容(如Name等属性):

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。

1 个答案:

答案 0 :(得分:1)

我重新制定了一点。问题依然存在,但后来我发现了一个简单的错误。

我的代码是:

public Station_ViewModel ViewModel;

但必须是:

public Station_ViewModel ViewModel { get; set; }

如果您希望其值可用于数据绑定,则需要将数据放在属性中。