C# 用WPF连接数据绑定列表框中的字段
首先,我要说,我对WPF和LINQ非常陌生,一直在努力学习它,同时在工作中使用它(难道你不讨厌在工作中学习东西,并在截止日期前完成项目!)。无论如何,我有一个员工列表框,它在代码中绑定到一个ObservableCollection。该集合的数据源是IQueryable类型的LINQ查询 我想做的是在列表框上显示LastName+“,“+FirstName格式,我不知道如何实现。它仅用于显示,不会以任何方式影响数据。我已经尝试为LINQ使用select new语法,但是,它不起作用,因为查询返回的是IQueryable,并且字段不属于Employee。listbox中的对象必须是Employee对象,因为它们可以保存回数据库,或者出于不同的原因移动到表单中的其他listboxC# 用WPF连接数据绑定列表框中的字段,c#,.net,wpf,listbox,C#,.net,Wpf,Listbox,首先,我要说,我对WPF和LINQ非常陌生,一直在努力学习它,同时在工作中使用它(难道你不讨厌在工作中学习东西,并在截止日期前完成项目!)。无论如何,我有一个员工列表框,它在代码中绑定到一个ObservableCollection。该集合的数据源是IQueryable类型的LINQ查询 我想做的是在列表框上显示LastName+“,“+FirstName格式,我不知道如何实现。它仅用于显示,不会以任何方式影响数据。我已经尝试为LINQ使用select new语法,但是,它不起作用,因为查询返回的
我不知道从这里到哪里去,如果我没有说清楚,我很抱歉。如果你还有任何关于我需要做什么的问题,请直接问,我会尽力回答。谢谢 假设您有一个
可观察的集合
,其中员工
是一个具有LastName
和FirstName
属性的类型,那么类似的方法应该可以工作:
<ListBox ItemSource="{Binding Employees}">
<ListBox.Resources>
<DataTemplate TargetType="{x:Type local:Employee}">
<StackPanel>
<TextBlock Text="{Binding Path=LastName}" />
<TextBlock Text=", " />
<TextBlock Text="{Binding Path=FirstName}" />
<StackPanel>
</DataTemplate>
</ListBox.Resources>
</ListBox>
列表框尝试显示其项目,但
Employee
不是ui元素
,因此它会搜索描述类型表示的模板。在列表框
的资源中嵌入了一个数据模板
,可以做到这一点。您可以使用多绑定和StringFormat轻松地完成这项工作,而且视觉成本更低。
在您的列表框中
<ListBox ItemsSource="{Binding EmployeeCollection}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock >
<TextBlock.Text >
<MultiBinding StringFormat=" {0},{1} ">
<Binding Path="LastName" />
<Binding Path="FirstName" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
如果你发布代码,你会得到更好的回复。这个问题主要与WPF有关。在这种情况下,LINQ是一个麻烦。多重绑定是一个更优雅的解决方案,只有那些可以使用3.5SP1的人才能使用。