2012-06-18 89 views
0

//你好!我需要将我的数据放入多列的列表框中,我看到这个链接stackoverflow.com...,但它没有提及我可以将列项添加到列的方式,而只是解释如何将数据项添加到列中,并且非常感谢。我做成功了下面的事情WPF将数据绑定到ListBox多列

<ListView.View> 
    <GridView> 
     <GridView.Columns> 
       <GridViewColumn Header="1" Width="100" DisplayMemberBinding="{Binding Path=Field1}" /> 
       <GridViewColumn Header="2" Width="100" DisplayMemberBinding="{Binding Path=Field2}" /> 
       <GridViewColumn Header="3" Width="100" DisplayMemberBinding="{Binding Path=Field3}" /> 
     </GridView.Columns> 
    </GridView> 
</ListView.View>` 

public sealed class MyListBoxItem 
    { 
     public string Field1 { get; set; } 
     public string Field2 { get; set; } 
     public string Field3 { get; set; } 
    } 
    public sealed class MyViewModel 
    { 
     public ObservableCollection<MyListBoxItem> Items { get; private set; } 
     public MyViewModel() 
     { 
      Items = new ObservableCollection<MyListBoxItem>(); 
      Items.Add(new MyListBoxItem { Field1 = "One", Field2 = "Two", Field3 = "Three" }); 
     } 
    } 
+0

感谢编辑我试图让它像这样,但我不能;) – Yasser

回答

0

你需要设置你的Window(说是窗口1)包含ListBox的控制,Window1.xaml.cs类的构造像这里面的DataContext属性:

public Window1() 
{ 
    MyViewModel vm = new MyViewModel(); 

    this.DataContext = vm; 
} 

下一步是设置您ListBox控件(内XAML)到您提供您的ViewModel类里面的Items财产ItemsSource属性:

<ListBox ItemsSource="{Binding Path=Items}"> 
    <!--Other XAML--> 
</ListBox> 

此外,还应该实现INotifyPropertyChanged界面为你MyListBoxItem类,这是解释here in MSDN。这是因为在WPF应用程序中实现了MVVM模式。要求您实施onewaytwoway数据绑定的更改通知才能正常工作(请参阅DataBinding了解更多信息)。

这是MVVM on MSDN的更详细的解释。

相关问题