我的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
属性Name
是string
,TaskCount
是int
。
这是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;
}
问题是:为什么文本没有显示?
您可以绑定到公共属性。 我只看到你的结构上的字段。 就像其他人说的:实现 INotifyPropertyChanged 并正确提高它
您应该实现 INotifyPropertyChanged 到您的业务对象。这将使用属性更改回调直接通知属性对 UI 的更改。但我不确定您是否正在使用它来绑定列表框....
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