我希望可以在名为LstbClients的ListBox中,每个Label或TextBlock中显示名称和电话号码(对我来说并不重要)。我以前使用ComboBox进行了数据绑定,效果很好,但由于某些原因,这个ListBox无法工作。
以下是XAML代码:
这是Client.cs的代码。
以下是XAML代码:
<ListBox x:Name="lstbClients"
Height="300"
Grid.Row="0" Grid.Column="0"
Style="{StaticResource inputControls}"
ItemsSource="{Binding clients}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding Name}"/>
<Label Content=", "/>
<Label Content="{Binding Phonenumber}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
以下是代码:
//clients is a filled ObservableCollection<client>
lstbClients.ItemsSource = clients;
这是Client.cs的代码。
public class Client
{
public int ID;
public string Lastname;
public string Name;
public string Streetname;
public string Postcode;
public string City;
public int Phonenumber;
public string Email;
public DateTime CreationDate;
public DateTime BirthDate;
public Client(int id, string lastname, string name, DateTime birthDate, string streetname, string postcode, string city, int phonenumber, string email, DateTime creationDate)
{
this.ID = id;
this.Lastname = lastname;
this.Name = name;
this.Streetname = streetname;
this.Postcode = postcode;
this.City = city;
this.Phonenumber = phonenumber;
this.Email = email;
this.CreationDate = creationDate;
this.BirthDate = birthDate;
}
}
出于某种奇怪的原因,ListBox的标签只显示“,”,而忽略了名称和电话号码,当我用最终的WPF应用程序“打开”ListBox时,所有数据都包含在内... 所以ListBox获取了数据,但它只是不想在lstbClients的标签上显示它,所以我无法识别哪个标签包含哪些数据。
INotifyPropertyChanged
。请展示 Observable Collection 声明的代码。同时,在运行时检查输出窗口以确保你没有出现绑定错误,这些错误可以帮助你找到问题所在。 - Daryl Behrens