突然之间,我以前没有的列表框绑定出现问题。
我有一个 ViewModel,其中有两个 observablecollection,其中包含一些数据。两个列表都正确填充。
在 MainPage() 构造函数中
DataContext = App.ViewModel;
InitializeComponent();
ViewModel 中的列表:
public ObservableCollection<Saloon> Saloons { get { return ... } set { ... } }
public ObservableCollection<TTSaloon> TTList { get { return ... } set { ... } }
我将第一个列表绑定到地图控件,并且能够将图钉绑定到列表中的“位置”属性。
<my:Map DataContext="{Binding Saloons}"....>
<my:Pushpin Location="{Binding Location}"/>...</my:Map>
以上工作正常。但我也有一个列表框,应该像这样绑定到其他集合(TTList):
<ListBox ItemsSource="{Binding TTList}" DataContext="{Binding}" Name="listBox1">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Path=CustomerName}" Foreground="White" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
但这根本不起作用。我尝试了很多不同的东西:
在代码隐藏中设置 ItemSource
从 ListBox 中删除 DataContext
将绑定路径更改为 Listname.Property
将元素上的 DataContexts 设置为代码隐藏中的特定列表。
在 InitializeComponent() 之后设置 DataContext
我没有想法,我在这里缺少什么,调试器也没有警告我。字段“CustomerName”确实存在并打印到控制台。
编辑:它是一个枢轴应用程序,如果可能产生影响,列表框位于第二个枢轴项中。