C# 如何在多重绑定中使用StringFormat?
我有以下代码:C# 如何在多重绑定中使用StringFormat?,c#,wpf,C#,Wpf,我有以下代码: 但是我得到的结果是“ServerNameInstanceName”,而不是“ServerName\InstanceName”StringFormat,如果绑定的目标没有键入为String。因此,将使用MultiBinding上的StringFormat,因为TextBlock.Text是String(如果绑定到Label.Content,它将不起作用,因为Label.Content是对象——一个常见的投诉)。内部的一个,即绑定到[InstanceName],没有键入为字符串的
但是我得到的结果是“ServerNameInstanceName”,而不是“ServerName\InstanceName”
StringFormat
,如果绑定的目标没有键入为String
。因此,将使用MultiBinding
上的StringFormat
,因为TextBlock.Text
是String
(如果绑定到Label.Content
,它将不起作用,因为Label.Content
是对象
——一个常见的投诉)。内部的一个,即绑定到[InstanceName]
,没有键入为字符串的目标,因为多绑定
必须接受任何类型的值。因此,StringFormat
被忽略
下面的工作
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}\{1}">
<Binding Path=".[ServerName]" TargetNullValue=""/>
<Binding Path=".[InstanceName]" TargetNullValue="" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
XAML
如果绑定的目标未键入为String
,则忽略StringFormat
。因此,将使用MultiBinding
上的StringFormat
,因为TextBlock.Text
是String
(如果绑定到Label.Content
,它将不起作用,因为Label.Content
是对象
——一个常见的投诉)。内部的一个,即绑定到[InstanceName]
,没有键入为字符串的目标,因为多绑定
必须接受任何类型的值。因此,StringFormat
被忽略
下面的工作
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}\{1}">
<Binding Path=".[ServerName]" TargetNullValue=""/>
<Binding Path=".[InstanceName]" TargetNullValue="" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
XAML
谢谢。消除空案例上的反斜杠正是我这样做的原因。我只是想避免转换器。@EhsanKeshavarzian我同意,最好保持它纯XAML,但我不认为这是一个选项。谢谢。消除空案例上的反斜杠正是我这样做的原因。我只是想避免转换器。@EhsanKeshavarzian我同意,最好保持它纯XAML,但我不认为这是一个选项。
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{local:ServerInstance}">
<Binding Path=".[ServerName]" />
<Binding Path=".[InstanceName]" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>