C# WPF多重绑定不起作用-标签为空 我试图把两个值绑定到一个标签的内容,中间有一个空格。我正在遵循MSDN()中的一个示例,但我的标签是空的。以下是我的代码:

C# WPF多重绑定不起作用-标签为空 我试图把两个值绑定到一个标签的内容,中间有一个空格。我正在遵循MSDN()中的一个示例,但我的标签是空的。以下是我的代码:,c#,wpf,data-binding,multibinding,C#,Wpf,Data Binding,Multibinding,类别: public class Item { //Other properties removed to shorten public string name { get; set; } public string typeLine { get; set; } } 设置项目源: ItemsDisplay.ItemsSource = searchResults; XAML: 如果我绑定一个值,它就可以完美地工作 <StackPane

类别:

public class Item
{
    //Other properties removed to shorten
    public string name { get; set; }
    public string typeLine { get; set; }
}
设置项目源:

ItemsDisplay.ItemsSource = searchResults;
XAML:


如果我绑定一个值,它就可以完美地工作

             <StackPanel Grid.Column="1">
                 <Label Name="ItemName" Margin="10" Content="{Binding Path=name}" />
                 <Label Name="ItemType" Margin="10" Content="{Binding Path=typeLine}" />
             </StackPanel>


因此,检索值似乎没有问题。

您不能设置
多绑定
whout
多值转换器

试试这个:

<ItemsControl Name="ItemsDisplay">
    <ItemsControl.Resources>
        <local:MyMultiConv x:Key="MyConv"/>
    </ItemsControl.Resources>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <!-- COLUMN DEFINITIONS ETC REMOVED TO SHORTEN -->
                        <StackPanel Grid.Column="1">
                            <Label Name="ItemName" Margin="10">
                                <Label.Content>
                                    <MultiBinding  Converter="{StaticResource MyConv}">
                                        <Binding Path="name" />
                                        <Binding Path="typeLine" />
                                    </MultiBinding>
                                </Label.Content>
                            </Label>
                        </StackPanel>
                    </Grid>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
</ItemsControl>
编辑

如果您直接绑定到“TextProperty”,您实际上可以:

<Textblock Name="ItemName" Margin="10">
        <Textblock.Text>
                <MultiBinding  StringFormat="{}{0} {1}">
                    <Binding Path="name" />
                    <Binding Path="typeLine" />
               </MultiBinding>
        </Textblock.Text>
</Textblock>


谢谢您的回复。现在它告诉我没有找到'local:MyMultiConv'。我的MyMultiConv在wpfap5 napesapce中,所以我在xaml中的local是:xmlns:local=“clr namespace:WpfApp5”我把转换器放在了名称空间的右括号lol下面。谢谢你的帮助。我编辑了,我犯了一点小错误;d有一种情况下,您可以在不使用转换器的情况下执行此操作:)
public class MyMultiConv : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            return string.Format("{0} {1}", values[0], values[1]);
        }

        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
<Textblock Name="ItemName" Margin="10">
        <Textblock.Text>
                <MultiBinding  StringFormat="{}{0} {1}">
                    <Binding Path="name" />
                    <Binding Path="typeLine" />
               </MultiBinding>
        </Textblock.Text>
</Textblock>