将自定义对象数据显示到ListBox WPF

Sac*_*aur 7 c# wpf

我在WPF应用程序中有一个ListBox:

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

</ListBox>
Run Code Online (Sandbox Code Playgroud)

我有三个按钮:添加,删除和更新,它们将添加,删除和更新项目到列表框.我将项目添加到ListBox我的自定义类对象名称objEmployee.此自定义类包含几个属性:Id,Name,Address.
但是,当我将对象添加到ListBox时,它将显示项目为

<Namespace Name>.<Custom Object name>
Run Code Online (Sandbox Code Playgroud)

如何在设计或运行时将任何对象属性绑定到此ListBox以实现我的功能?

Mat*_*ton 25

几种选择:

第一个最简单的选项是将ListBox的DisplayMemberPath属性设置为自定义对象的属性.因此,如果您的Employee类具有LastName属性,则可以执行以下操作:

<ListBox DisplayMemberPath="LastName" ... />
Run Code Online (Sandbox Code Playgroud)

如果您想要更好地控制为每个项目显示的数据(包括自定义布局等),那么您将需要为ListBox中的每个项目定义DataTemplate.最简单的方法是简单地设置ListBox的ItemTemplate属性:

<ListBox ...>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding FirstName}" />
                <TextBlock Text="{Binding LastName}" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

阅读我提供的链接并查看MSDN上的一些示例代码.