我正在尝试创建一个包含扩展器列表的视图,当我按下以扩展其中一个时,我想要一个来自要加载的不同项目源的名称列表。到目前为止,我得到的是当我将项目源设置为 LineRouteCollection 以设置扩展器的标题时,即使我绑定扩展器以显示来自 AllStopsCollection 的名称,绑定“名称”显示来自 LineRouteCollection 源的名称而不是名称根据我的需要从 AllStopsCollection 中获取。你能看看我的代码并告诉我我做错了什么吗?
<ListBox>
<ItemsControl ItemsSource="{Binding LineRouteCollection}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Expander Header="{Binding Name}" MinHeight="70">
<ListBox >
<ItemsControl ItemsSource ="{Binding AllStopsCollection}">
<TextBlock Text="{Binding Name}"></TextBlock>
</ItemsControl>
</ListBox>
</Expander>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ListBox>
编辑:
在我的视图模型中,我像这样加载可观察的集合(AllStopsCollection 和 LineRouteCollection):
private ObservableCollection<Route> AllLineRoutes;
private ObservableCollection<StopView> AllRouteStops;
//List of all Routes connected to the selected line
public ObservableCollection<Route> LineRouteCollection // Must be property or DP to be bound!
{
get { return AllLineRoutes; }
set
{
if (Equals(value, AllLineRoutes)) return;
AllLineRoutes = value;
}
}
//List of all stops
public ObservableCollection<StopView> AllStopsCollection // Must be property or DP to be bound!
{
get { return AllRouteStops; }
set
{
if (Equals(value, AllRouteStops)) return;
AllRouteStops = value;
}
}
我在类的构造函数中用数据填充集合。我正在正确加载数据,我可以看到它,但在展开器展开后它不会出现在文本框中。