Frage

für eine einzelne Bindung, die wir verwenden:

<TextBlock>
  <TextBlock.Text>
    <MultiBinding StringFormat="{}{0}">
      <Binding Path=EmployeeName/>
    </MultiBinding>
  </TextBlock.Text>
</TextBlock>

oder eine kürzere Syntax:

<TextBlock 
 Text="{MultiBinding StringFormat=\{0\}, Bindings={Binding Path=EmployeeName}}"/>

Nun, wenn Sie haben mehrbindigen:

<TextBlock>
  <TextBlock.Text>
    <MultiBinding StringFormat="{}{0}, {2}">
      <Binding Path="EmployeeName"/>
      <Binding Path="Age"/>
    </MultiBinding>
  </TextBlock.Text>
</TextBlock>

Ich habe mich gefragt, was die kürzere Syntax wäre?

<TextBlock 
 Text="{MultiBinding StringFormat=\{0\}, Bindings={Binding ??????}"/>
War es hilfreich?

Lösung

Laut MSDN, Ihr zweites Beispiel ( "kürzere Syntax Multibinding mit einer einzigen Bindung verwenden") nicht funktionieren sollte, weder in . net 3.5 noch in net 4.0 :

  

Hinweis:

     

Multibinding und Priority keine XAML Erweiterung Syntax unterstützt (trotz der gleichen Klasse Binding teilen, das ist eigentlich das XAML Verhalten implementiert für Binding).

Also, wenn es für Sie arbeitet, das ist zufällig, und es ist nicht das Verhalten unterstützt.


PS: Sie brauchen nicht Multibinding für eine Single Bindung zu verwenden. Folgendes sollte genügen:

<TextBlock>
    <TextBlock.Text>
        <Binding Path="EmployeeName" />
    </TextBlock.Text>
</TextBlock>

oder

<TextBlock Text="{Binding Path=EmployeeName}"/>

oder noch kürzer

<TextBlock Text="{Binding EmployeeName}"/>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top