3

我想在歌曲的标题中组合歌曲的名称和 ID。如果我有可能:

Song
{
   public string Name {get; set;}
   public int ID {get; set;}
}

我想将它们绑定到扩展器的标题中。目前,只绑定一个属性。是这样的:

<Expander Foreground="#FFF4E7CA"  Header="{Binding Song.Name}" FontWeight="Bold">
</Expander>

但我想成为这样的人:

Header = "{Binding Some.Name, Song.ID}" 

那有可能吗?如果是,如何?提前致谢。

4

3 回答 3

9

像这样的东西:

<Expander ...>
  <Expander.Header>
    <TextBlock>
      <TextBlock Text="{Binding Song.Name}"/>
      <TextBlock Text=" "/>
      <TextBlock Text="{Binding Sond.ID}"/>
    </TextBlock>
  </Expander.Header>
  ...
</Expander>
于 2012-04-24T10:57:22.013 回答
5

你也可以

1)在您的视图模型上公开一个新属性并绑定到该属性

Song
{
   public string Name {get; set;}
   public int ID {get; set;}
   public string Header {get { return string.Format("{0} {1}", Name, ID); } }
}

2) 使用字符串格式的多重绑定

<TextBlock.Text>
    <MultiBinding StringFormat="{}{0} {1}">
        <Binding Path="Song.Name"/>
        <Binding Path="Song.Id"/>
    </MultiBinding>
</TextBlock.Text>

3)如果您使用的是 WPF4,则Run可以绑定,因此有关使用的答案Run将起作用。

于 2012-04-24T11:41:05.097 回答
1

是的,您可以使用多重绑定类

于 2012-04-24T10:55:24.720 回答