我有一个问题。当Binding
项目到ListBox
时,它会垂直添加它们。例如,ItemsSource = "{Binding Path = Name}"
和Name
为Bill
时,我会在ListBox
中获取每个字符的输出(如下所示:B \ ni \ nl \ nl) 。我在哪里做错了?
XAML:
<Window x:Class="ObservableColl.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ListBox HorizontalAlignment="Left" Height="244" Margin="313,28,0,0" VerticalAlignment="Top" Width="177" ItemsSource="{Binding Path=Name}"/>
</Grid>
</Window>
C#:
class Customer
{
public string Name{get; set;}
}
class Customers
{
public ObservableCollection<Customer> customerOC{get; set;}
public Customers()
{
customerOC = new ObservableCollection<Customer>();
}
public void AddCustomer(Customer c)
{
customerOC.Add(c);
}
}
public partial class MainWindow:Window
{
Customers customers{get; set;}
public MainWindow()
{
InitializeComponent();
customers = new Customers();
customers.AddCustomer(new Customer(){Name = "Frank"});
this.DataContext = customers;
}
}
答案 0 :(得分:1)
您的DataContext
已设置为客户。 ItemsSource
应设置为ObservableCollection
,DisplayMemberPath
用于显示客户的正确属性。
<ListBox ItemsSource="{Binding customerOC}" DisplayMemberPath="Name" />