2012-06-18 247 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的更詳細的解釋。

相關問題