MultiBinding ComboBoxItem.Content

时间:2014-12-27 19:57:15

标签: wpf

您好我正在尝试实现这样的绑定:

<ComboBoxItem Style="{StaticResource ComboBoxItemStyle2}">
    <ComboBoxItem.Content>
        <MultiBinding StringFormat=" {}{0} {1}">
            <Binding Path="Value" Source="{StaticResource Name}" />
            <Binding Path="Name" Source="{StaticResource Person}" />
        </MultiBinding>
    </ComboBoxItem.Content>
</ComboBoxItem>

其中“Name”是本地化字符串,“Value”用于获取其本地化字符串。 由于某种原因,这似乎不起作用。我变空了。

3 个答案:

答案 0 :(得分:1)

这可能会对您有所帮助:String format using MultiBinding?

摘自该帖子:

您正在尝试将字符串绑定到对象。但StringFormat要求其目标是字符串类型。尝试在内容中放置TextBlock并将数据绑定到它。

还在名字旁边加上“”。

答案 1 :(得分:1)

以下是更正后的代码:

<ComboBoxItem Style="{StaticResource ComboBoxItemStyle2}">
    <TextBlock>
        <TextBlock.Text>
            <MultiBinding StringFormat="{}{0} {1}">
                <Binding Path="Value" Source="{StaticResource Name}" />
                <Binding Path="Name" Source="{StaticResource Person}" />
            </MultiBinding>
        </TextBlock.Text>
    </TextBlock>
</ComboBoxItem>

我需要解决两件事:

  1. 将内容保留为TextBlock并在那里绑定文本。
  2. 从StringFormat中移除了额外的间距,即“{} {0} {1}”==&gt; “{} {0} {1}”。

答案 2 :(得分:0)