我想在歌曲的标题中组合歌曲的名称和ID.如果我有:
Song
{
public string Name {get; set;}
public int ID {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我想将它们绑定到Expander的Header中.目前,只与一个属性绑定.它是这样的:
<Expander Foreground="#FFF4E7CA" Header="{Binding Song.Name}" FontWeight="Bold">
</Expander>
Run Code Online (Sandbox Code Playgroud)
但我希望成为这样的事情:
Header = "{Binding Some.Name, Song.ID}"
Run Code Online (Sandbox Code Playgroud)
那么有可能吗?如果是,怎么样?提前致谢.
像这样的东西:
<Expander ...>
<Expander.Header>
<TextBlock>
<TextBlock Text="{Binding Song.Name}"/>
<TextBlock Text=" "/>
<TextBlock Text="{Binding Sond.ID}"/>
</TextBlock>
</Expander.Header>
...
</Expander>
Run Code Online (Sandbox Code Playgroud)
你可以
1)在视图模型上公开一个新属性并绑定到该属性
Song
{
public string Name {get; set;}
public int ID {get; set;}
public string Header {get { return string.Format("{0} {1}", Name, ID); } }
}
Run Code Online (Sandbox Code Playgroud)
2)使用带有字符串格式的多重绑定
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1}">
<Binding Path="Song.Name"/>
<Binding Path="Song.Id"/>
</MultiBinding>
</TextBlock.Text>
Run Code Online (Sandbox Code Playgroud)
3)如果您正在使用WPF4,那么它Run是可绑定的,因此有关使用的答案Run将起作用.
| 归档时间: |
|
| 查看次数: |
1806 次 |
| 最近记录: |