0

我的 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>

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

Project属性是Namea并且string是。TaskCountint

这是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;
}

问题是:为什么文本不显示?

4

2 回答 2

3

您可以绑定到public Properties。我只看到你的结构上的字段。就像其他人说的:实施 INotifyPropertyChanged 并正确提高它

于 2012-06-20T08:29:25.133 回答
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

于 2012-06-20T06:10:50.760 回答