0

我有一个名为 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 实例的内容(如名称等属性):

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 实例的属性确实已加载,但在屏幕中显示为它们未加载(例如,名称仍然是空字符串)。

奇怪的是,如果我创建一个只有一个 Station_View 类的窗口(不在 Stations_View 内),一切都会正常加载和显示。

每个相关的变量都被声明为 Public。

4

1 回答 1

1

我稍微改了一下。问题仍然存在,但后来我发现了一个简单的错误。

我的代码是:

public Station_ViewModel ViewModel;

但它必须是:

public Station_ViewModel ViewModel { get; set; }

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

于 2013-09-23T18:59:12.260 回答