2013-09-28 43 views
0

试图将listbox绑定到对象。代码运行没有错误,但由于某种原因,样本数据没有出现在listboxWPF:无法将对象绑定到列表框

XAML:​​

<UserControl x:Class="TheProject.UserControls.ucDataBindingObject" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      Name="DataBindingObject" 
      Width="Auto" 
      Height="Auto" 
      mc:Ignorable="d"> 

    <Grid Width="130" 
      Height="240" 
      Margin="0"> 

     <ListBox Name="lbObject" 
       Width="110" 
       Height="80" 
       Margin="10,7,-9.6,0" 
       HorizontalAlignment="Left" 
       VerticalAlignment="Top" 
       DisplayMemberPath="Name" 
       ItemsSource="{Binding ElementName=ucDataBindingObject, 
             Path=Clients}" /> 

    </Grid> 
</UserControl> 

C#:ucDataBindingObject.xaml.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Windows.Controls; 
namespace TheProject.UserControls 
{ 
    public partial class ucDataBindingObject : UserControl 
    { 

     public List<Client> Clients { get; set; } 


     public ucDataBindingObject() 
     { 
      Clients = new List<Client>(); 
      Clients.Add(new Client(1, "David")); // sample data 
      Clients.Add(new Client(2, "Helen")); 
      Clients.Add(new Client(3, "Joe")); 


      InitializeComponent(); 
     } 
    } 

C#Client.cs

using System; 
using System.Linq; 

namespace TheProject.UserControls 
{ 
    public class Client 
    { 
     public int ID { get; set; } 
     public string Name { get; set; } 

     public Client(int id, string name) 
     { 
      this.ID = id; 
      this.Name = name; 
     } 
    } 
} 

回答

3

更新你的ItemsSource绑定作为

ItemsSource="{Binding Path=Clients}" 

,并在您的视图的构造,InitializeComponents后设置它的DataContext作为

this.DataContext = this; 

没有名为ucDataBindingObject元素,这是你的用户控件的类名

或改变绑定到DataBindingObject的元素名称,您将其命名为您的usercontrol

+0

啊。我不得不引用文件后面的代码。像魅力一样工作。感谢帮助。 –