Wpf 我们可以在数据绑定中包含两个属性吗?

Wpf 我们可以在数据绑定中包含两个属性吗?,wpf,silverlight-4.0,Wpf,Silverlight 4.0,我们可以在绑定表达式中将两个属性合并在一起吗?如果可能,不使用转换器或不写入两个文本块并分别设置它们?可以在WPF中使用和StringFormat。但不幸的是,在Silverlight中不是这样。像alpha-mouse一样,多绑定在开箱即用的情况下是不起作用的,但这家伙把一些东西组合在一起可能会有所帮助: 如果这看起来有点流氓,那么可以尝试在对象上放置一个组合值属性作为绑定机制的助手,如: public string FullName { get { return this.First

我们可以在绑定表达式中将两个属性合并在一起吗?如果可能,不使用转换器或不写入两个文本块并分别设置它们?

可以在WPF中使用和StringFormat。但不幸的是,在Silverlight中不是这样。

像alpha-mouse一样,多绑定在开箱即用的情况下是不起作用的,但这家伙把一些东西组合在一起可能会有所帮助:

如果这看起来有点流氓,那么可以尝试在对象上放置一个组合值属性作为绑定机制的助手,如:

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>