2013-02-22 83 views
0

我有一个问题。当Binding项目到ListBox它垂直添加它们。例如,其中ItemsSource = "{Binding Path = Name}"NameBill,我得到了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

在类Customers的构造函数中,'customer'是什么?我看不到这个变量的定义。 – Abbas 2013-02-22 17:51:33

+0

对不起,它是为了顾客。编辑* – jonjohnson 2013-02-22 17:59:14

+0

您可以显示完整的XAML – devdigital 2013-02-22 18:03:10

回答

1

DataContext设置为客户。 ItemsSource应设置为ObservableCollectionDisplayMemberPath用于显示客户的正确财产。

<ListBox ItemsSource="{Binding customerOC}" DisplayMemberPath="Name" /> 
+0

谢谢完美的作品 – jonjohnson 2013-02-22 18:12:19