我希望我的用户能够从WPF中的ComboBox中选择一个客户端(自定义对象)。 ComboBox将通过他们的FirstName(字符串)和LastName(字符串)显示所有客户端。组合框 - 从两个属性中选择对象
所以基本上我的ViewModel公开了一个单一的客户端,这是用户将做出的选择,以及用于填充ComboBox的所有客户端的列表。组合框”声明如下:
<ComboBox Grid.Row="3" Grid.Column="1" Text="{Binding Client}" ItemsSource="{Binding Clients}" IsEditable="True">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1}">
<Binding Path="FirstName"/>
<Binding Path="LastName"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
当然,这并不工作,因为文本属性显示原始客户端(产品的型号名称),并且如果在一个名称的用户类型不能转换为客户。这似乎是一个非常简单的事情,通过在线搜索,我似乎找到了几十个不同的解决方案:创建一个具有格式正确的名称的包装类型,使用值转换器,使用数据模板...我不熟悉所有那些WPF技术,所以请帮助我找出最好的(希望简单!)解决方案。
谢谢!
是的,但如果您想做更复杂的事情,它将无济于事。例如,粗体的名字,正常的姓氏。为此,你需要数据模型 –
@ Dr.AndrewBurnett-Thompson Aah,这是真的,没有想过这个。 –
我还为它+1了。简单往往被忽视;) –