2009-02-23 18 views
6

tengo un cuadro de lista en la aplicación de WPF como:de visualización de datos de objetos personalizados a ListBox WPF

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

</ListBox> 

tengo tres botones: añadir, eliminar y actualizar que añadir, eliminar y actualizar los elementos al cuadro de lista. Estoy agregando elementos a ListBox mis nombres de objetos de clase personalizados objEmployee. Esta clase personalizada contiene pocas propiedades: Id, Nombre, Dirección.
Pero, cuando agrego el objeto de cuadro de lista, a continuación, se mostrará artículos como

<Namespace Name>.<Custom Object name> 

¿Cómo puedo enlazar cualquiera de los bienes objeto de este cuadro de lista en el diseño o en tiempo de ejecución a acheive mi funcionalidad?

Respuesta

24

par de opciones:

La primera, opción más fácil es establecer la propiedad del cuadro de lista DisplayMemberPath a una propiedad del objeto personalizado. Así que si su clase Employee tiene una propiedad Apellidos usted puede hacer esto:

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

Si desea tener más control sobre los datos que se muestra para cada elemento (incluyendo diseño personalizado etc), entonces usted querrá definir un DataTemplate de cada elemento en su ListBox. La forma más sencilla de hacerlo es, simplemente definiendo la propiedad del cuadro de lista ItemTemplate:

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

tener una lectura a través de los enlaces que he proporcionado y echa un vistazo a algunos de los ejemplos de código en MSDN.

Cuestiones relacionadas