Wpf 我们可以在数据绑定中包含两个属性吗?
我们可以在绑定表达式中将两个属性合并在一起吗?如果可能,不使用转换器或不写入两个文本块并分别设置它们?可以在WPF中使用和StringFormat。但不幸的是,在Silverlight中不是这样。像alpha-mouse一样,多绑定在开箱即用的情况下是不起作用的,但这家伙把一些东西组合在一起可能会有所帮助: 如果这看起来有点流氓,那么可以尝试在对象上放置一个组合值属性作为绑定机制的助手,如:Wpf 我们可以在数据绑定中包含两个属性吗?,wpf,silverlight-4.0,Wpf,Silverlight 4.0,我们可以在绑定表达式中将两个属性合并在一起吗?如果可能,不使用转换器或不写入两个文本块并分别设置它们?可以在WPF中使用和StringFormat。但不幸的是,在Silverlight中不是这样。像alpha-mouse一样,多绑定在开箱即用的情况下是不起作用的,但这家伙把一些东西组合在一起可能会有所帮助: 如果这看起来有点流氓,那么可以尝试在对象上放置一个组合值属性作为绑定机制的助手,如: public string FullName { get { return this.First
public string FullName {
get { return this.FirstName + " " + this.LastName; }
}
可以使用执行连接的getter添加新属性 假设您有
FirstName
和LastName
属性。然后可以定义名称属性,如下所示:
public string Name { get { return FirstName + " " + LastName; } }
这将很好地工作,但您应该知道,您不能为只读属性执行双向绑定。此外,您可能希望在源属性的setters中为连接的属性实现属性更改通知。如果您希望在单个文本块中显示,例如FirstName
和LastName
,则可以执行以下操作:
<TextBlock>
<Run Text="{Binding FirstName}" />
<Run Text=" " /> <!-- space -->
<Run Text="{Binding LastName}" />
</TextBlock>
希望有帮助 如果需要添加任何字符串,请尝试添加。在这里,我在windows phone中绑定文本后添加“%”
<TextBlock Text="{Binding Path=clouds.all, StringFormat=\{0\}%}"/>
data1和data2是绑定的字符串属性。正是我所需要的。谢谢在每个Run语句中,您忘记了在>之前的/。否则,帮了我很多!天才就是简单!链接到文档:使用
是一个更干净的XAML专用解决方案(请参见下面的另一个答案)。请看这里这是一个很好的解决方案,因为它适用于更复杂的组件,如DataGrid.TextColumn
。
<TextBlock Text="{Binding Path=clouds.all, StringFormat=\{0\}%}"/>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} , {1}">
<Binding Path="data1" />
<Binding Path="data2" />
</MultiBinding>
</TextBlock.Text>