我想在Song的标题中组合歌曲的名称和ID。如果我有:
是否可能Song
{
public string Name {get; set;}
public int ID {get; set;}
}
我想将它们绑定到Expander的Header中。目前,只与一个属性绑定。它是这样的:
<Expander Foreground="#FFF4E7CA" Header="{Binding Song.Name}" FontWeight="Bold">
</Expander>
但我希望成为这样的事情:
Header = "{Binding Some.Name, Song.ID}"
那么有可能吗?如果是,怎么样?提前致谢。
答案 0 :(得分:7)
这样的事情:
<Expander ...>
<Expander.Header>
<TextBlock>
<TextBlock Text="{Binding Song.Name}"/>
<TextBlock Text=" "/>
<TextBlock Text="{Binding Sond.ID}"/>
</TextBlock>
</Expander.Header>
...
</Expander>
答案 1 :(得分: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
的答案将有效。
答案 2 :(得分:1)
是的,您可以使用the multibinding class