将列表中的多个变量绑定到一个组合框

问题描述 投票:0回答:1

我刚刚开始学习 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}"/>
c# wpf combobox binding
1个回答
0
投票

而不是

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>
© www.soinside.com 2019 - 2024. All rights reserved.