2013-12-13 72 views
1

我使用MVVM來開發我的應用程序。 [Table] Member with [Column] FullName |地址如何使用Observablecollection創建列表數據以顯示在列表框中

我想列出所有FullName以顯示在列表框中不知道如何...當我單擊顯示...行「Library.Model.Member」出現...(圖書館是我的項目名稱)

我的視圖模型

public void Add(Member info) 
     { 
      MemberDB.Members.InsertOnSubmit(info); 
      MemberDB.SubmitChanges(); 
      Data.Add(info); 

     } 

添加功能在我Show.xaml.cs

public Show() 
    { 
     InitializeComponent(); 
     this.DataContext = App.ViewModel; 

    } 
    protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) 
    { 
     // Save changes to the database. 
     App.ViewModel.SaveChangesToDB(); 
    } 

列表框:

<StackPanel Orientation="Vertical"> 
     <ListBox x:Name="FullName" 
      ItemsSource="{Binding Data}" 
      FontSize="30"> 
     <TextBlock Text="{Binding FullName}"/> 
     </Listbox> 
     </StackPanel> 

數據

private ObservableCollection<Member> _data; 
    public ObservableCollection<Member> Data 
    { 
     get { if(_data==null) 
      _data = new ObservableCollection<Member>(); 
       return _data; 
     } 
     set 
     { 
      if(value !=_data) 
      _data = value; 
      NotifyPropertyChanged("Data"); 
     } 

回答

1

你需要給列表框一個ItemTemplate,默認情況下它有一個ListBoxItem的,它試圖做的ToString()你的對象。

像這樣的事情

<ListBox ItemsSource="{StaticResource customers}" Width="350" Margin="0,5,0,10"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <TextBlock Padding="5,0,5,0" 
     Text="{Binding FirstName}" /> 
       <TextBlock Text="{Binding LastName}" /> 
       <TextBlock Text=", " /> 
       <TextBlock Text="{Binding Address}" /> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 
+0

確定。我知道了。非常感謝兄弟 – user3084513

相關問題