来自绑定集合的WPF ListBox项标签为空

时间:2012-06-20 04:59:27

标签: wpf data-binding styles

我的WPF样式有些麻烦。我有一个ListBox,其中包含一堆空白(不应该是空白的)标签。在我的XAML中定义如下:

            <ListBox Height="auto" Name="ProjectsList" Width="auto" DockPanel.Dock="Top" ItemsSource="{Binding Projects}">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Grid Margin="3">
                            <Label Content="{Binding Path=Name}" Foreground="Black" Height="40" Padding="7" VerticalAlignment="Center" ScrollViewer.HorizontalScrollBarVisibility="Hidden" Name="ProjectName" />
                            <Label Content="{Binding Path=TaskCount}" Foreground="Gray" Width="25" Name="ProjectTaskCount" />
                        </Grid>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

ProjectsObservableCollection,其中填充了Project结构(我定义的结构),这些结构是在数据库查询后创建的,用于获取相应的数据。我可以单步执行代码,看到查询返回正常,并查看结构填充并添加到集合中。我也知道它正在填充ListBox因为我可以选择其中的空白项目并突出显示。但是没有应该有的文字。

Project属性NamestringTaskCountint

这是Project定义

public struct Project
{
    public Int64 Id;
    public string Name;
    public string Description;
    public bool HasDueDate;
    public DateTime DueDate;
    public Int64 UserId;
    public int TaskCount;
}

问题是:为什么文字没有出现?

2 个答案:

答案 0 :(得分:3)

您只需绑定到公共属性即可。我只看到结构上的字段。和其他人说的那样:实现INotifyPropertyChanged并正确地提升它

答案 1 :(得分:1)

您应该将INotifyPropertyChanged实现到您的业务对象。哪个会使用PropertyChanged回调直接通知属性对UI的更改..但是我不确定你是否使用它来绑定ListBox ....

http://www.codeproject.com/Articles/165368/WPF-MVVM-Quick-Start-Tutorial

http://www.codeproject.com/Articles/81484/A-Practical-Quick-start-Tutorial-on-MVVM-in-WPF

http://wpftutorial.net/MVVM.html