数据绑定列表框的问题

时间:2012-04-30 14:34:19

标签: windows-phone-7 xaml data-binding

突然之间出现了我之前没有的列表框绑定问题。

我有一个ViewModel,其中有两个observablecollections,其中包含一些数据。两个列表都已正确填充。

在MainPage()构造函数

DataContext = App.ViewModel;
InitializeComponent();

ViewModel中的列表:

public ObservableCollection<Saloon> Saloons { get { return ... } set { ... } }
public ObservableCollection<TTSaloon> TTList { get { return ... } set { ... } }

我将第一个列表绑定到地图控件,并且能够将图钉绑定到列表中的“Location”属性。

<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”字段确实存在并打印到控制台。

编辑:它是一个数据透视应用,如果可能产生影响,则列表框位于数据透视表中。

2 个答案:

答案 0 :(得分:0)

Yout前景设置为白色。也许你因为白色背景上的白色字母而无法看到物品?

答案 1 :(得分:0)

当ObservableCollection“设置”一个值时,你是在提高OnPropertyChanged吗?

(ObservableCollection仅在执行“添加”,“删除”或“清除”时自行引发更改)