Pregunta

para una sola unión, usamos:

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

o una sintaxis más corta:

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

Ahora, si usted tiene unión múltiple:

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

Me preguntaba, ¿cuál sería su sintaxis más corta?

<TextBlock 
 Text="{MultiBinding StringFormat=\{0\}, Bindings={Binding ??????}"/>
¿Fue útil?

Solución

Según MSDN, su segundo ejemplo ( "sintaxis más corta usando MultiBinding con una sola Binding") no debe trabajar, tampoco en . net 3.5 ni en neto 4,0 :

  

Nota:

     

MultiBinding y PriorityBinding no soportan una sintaxis extensión XAML (a pesar de compartir la misma clase BindingBase, que en realidad implementa el comportamiento XAML para atar).

Así que, si funciona para ti, eso es por accidente, y no es soportado comportamiento.


PD: no es necesario utilizar MultiBinding para un solo vinculante. El siguiente debería ser suficiente:

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

o

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

o incluso más corto

<TextBlock Text="{Binding EmployeeName}"/>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top