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>