如何在listBox的text属性中使用multibinding?

时间:2013-05-26 07:45:07

标签: c# wpf listbox multibinding

我有一个listBox,它绑定到我的视图模型中的一个类。这个类有很多属性,但我想在我的listBox中显示其中两个。

我看到了这个例子(post

主要代码是:

<ListBox ItemsSource="{Binding PersonList}">
      <ListBox.ItemTemplate>
         <DataTemplate>
            <TextBlock>
               <TextBlock.Text>
                  <MultiBinding Converter="{StaticResource mvc}"
                                ConverterParameter=", ">
                     <Binding Path="LastName"/>
                     <Binding Path="FirstName"/>
                  </MultiBinding>
               </TextBlock.Text>
            </TextBlock>
         </DataTemplate>

      </ListBox.ItemTemplate>
   </ListBox>

我的问题是,当我尝试使用它时,我的axml中不可用。所以我无法继续使用代码。

为什么我不能使用Multibinding?

我的斧头是:

<ListBox HorizontalAlignment="Stretch" Margin="5,41,0,0" Name="lsbPersonas" VerticalAlignment="Stretch" Grid.Row="1"
                 ItemsSource="{Binding Personas}"
                 SelectionMode="Extended" Height="112">


            <ListBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock>
                        <TextBlock.Text>
                            <Multibinding ???? (I don't have this avaliable)
                        </TextBlock.Text>
                    </TextBlock>
                </DataTemplate>
            </ListBox.ItemTemplate>
</ListBox>

感谢。

1 个答案:

答案 0 :(得分:1)

您可能没有为项目添加适当的绑定转换器(例如代码示例中的静态资源mvc)。

幸运的是,它甚至没有必要。您可以改为设置MultiBinding的StringFormat属性:

<TextBlock.Text>
    <MultiBinding StringFormat="{}{0}, {1}">
        <Binding Path="LastName"/>
        <Binding Path="FirstName"/>
    </MultiBinding>
</TextBlock.Text>