我刚刚开始学习 WPF 和 C#。
考虑:
private void TransferAccountButtonClick(object sender, RoutedEventArgs e)
{
List<Client> allClients = Client.JsonToList();
TransferStackPanel.Visibility = Visibility.Visible;
TransferNameCombobox.DataContext = allClients;
TransferNameCombobox.DisplayMemberPath = "surname";
}
我需要在组合框中显示多个字段。类似的东西
TransferNameCombobox.DisplayMemberPath = "surname" + " " + "name" + " " + "patronymic";
如果我这样做,它将显示空字段。 我知道“姓氏”不是字符串,但我不明白该怎么做。
在XAML中,我只有:
<ComboBox x:Name="TransferNameCombobox" ItemsSource="{Binding}"/>
而不是
TransferNameCombobox.DataContext = allClients;
使其成为 TransferNameCombobox.ItemsSource = allClients;
并删除 TransferNameCombobox.DisplayMemberPath = "surname";
然后在 xaml 中,使用这个
MultiBinding
结构:
<ComboBox x:Name="TransferNameCombobox">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}, {1}, {2}">
<Binding Path="surname"/>
<Binding Path="name"/>
<Binding Path="patronymic"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>