2009-02-23 16 views
6

Mam ListBox w WPF jako:Pokaż dane niestandardowego obiektu do ListBox WPF

<ListBox HorizontalAlignment="Left" Margin="16,37,0,16" Name="lbEmpList" Width="194" SelectionChanged="lbEmpList_SelectionChanged" FontSize="12" SelectionMode="Single"> 

</ListBox> 

Mam trzy przyciski: dodawanie, usuwanie i aktualizację, która będzie dodawać, usuwać i aktualizować pozycje do listy. Dodaję Elementy do ListBox moje nazwy obiektów klasy niestandardowej objEmployee. Ta niestandardowa klasa zawiera kilka właściwości: identyfikator, nazwę, adres.
Ale kiedy dodać obiekt do pola listy, a następnie wyświetli pozycje jak

<Namespace Name>.<Custom Object name> 

Jak mogę powiązać żadnej z właściwości obiektu do tego pola listy w czasie projektowania lub uruchomić czasu do acheive mój funkcjonalność?

Odpowiedz

24

kilka opcji:

Pierwszym, najprostszym rozwiązaniem jest ustawienie pola listy w DisplayMemberPath własności do nieruchomości z niestandardowego obiektu. Więc jeśli klasa Pracownik ma właściwość lastName można to zrobić:

<ListBox DisplayMemberPath="LastName" ... /> 

Jeśli chcesz mieć większą kontrolę nad danymi, który jest wyświetlany dla każdego elementu (w tym niestandardowym układzie etc), a następnie będziemy chcieli zdefiniować DataTemplate dla każdy przedmiot w twoim ListBoxie. Najprostszym sposobem na to jest po prostu ustawienie ItemTemplate właściwość ListBox za:

<ListBox ...> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <TextBlock Text="{Binding FirstName}" /> 
       <TextBlock Text="{Binding LastName}" /> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

Prosze zapoznać się z linkami mam dostarczonych i sprawdzić niektóre z przykładowym kodzie na MSDN.

Powiązane problemy