Как да направите списъчни данни с Observablecollection, които да се показват в списъка

Използвам MVVM, за да разработя приложението си. [Таблица]Член с [Колона] Пълно име | Адрес

Искам да изброя всички Пълни имена, за да ги покажа в Listbox, не знам как... Когато щракна върху Покажи... появява се редът "Library.Model.Member"... (Library е името на моя проект)

моята функция за добавяне във ViewModel

 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");
        }

person user3084513    schedule 13.12.2013    source източник


Отговори (1)


Трябва да дадете на ListBox 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>
person 123 456 789 0    schedule 13.12.2013