2009-02-23 15 views
6

のように私は、WPFアプリケーションでリストボックスを持っている:私は3つのボタンが持っている表示カスタムオブジェクトデータのListBox WPF

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

</ListBox> 

:追加、削除や追加、削除、リストボックスにアイテムを更新します更新。 ListBoxにカスタムクラスオブジェクトの名前を追加していますobjEmployee このカスタムクラスには、Id、Name、Addressというプロパティはほとんどありません。
しかし、私はリストボックスにオブジェクトを追加するとき、それは私がデザイン時にこのリストボックスにオブジェクトのプロパティのいずれかを結合するか、または私の機能をacheiveする時間を実行するにはどうすればよい

<Namespace Name>.<Custom Object name> 

などの項目が表示されますか?

答えて

24

オプションのカップル:

まず、最も簡単なオプションは、カスタムオブジェクトのプロパティにリストボックスのDisplayMemberPathプロパティを設定することです。あなたのEmployeeクラスは、あなたがこれを行うことがLastNameのプロパティを持っているのであれば:

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

あなたは(カスタム含むレイアウトなど)各項目に表示するデータをより細かく制御したいなら、あなたはのためにDataTemplateを定義することをお勧めしますあなたのListBoxの各項目。これを行う最も簡単な方法は、単純に、リストボックスのItemTemplateプロパティを設定することである:

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

は私が提供し、MSDNのサンプルコードのいくつかをチェックアウトしましたリンクを介して読み取りを持っています。