2012-01-25 6 views
9

que tiene este XAMLextraño MultiBinding StringFormat tema

<MultiBinding StringFormat=" {0}{1}/{2}"> 
    <Binding Path="Text" ElementName="tbxAuthHost" /> 
    <Binding Path="Text" ElementName="tbxAuthWebsiteName" /> 
    <Binding Path="Text" ElementName="tbxAuthServicesAddress" /> 
</MultiBinding> 

Cuando intento cambio "{0} {1}/{2}" en "{0} {1}/{2}" así que no hay líder espacio allí y luego Visual Studio da este error:

Error 3 El texto '{1}/{2}' no está permitido después del cierre '}' de una expresión MarkupExtension. Línea 116 Posición 56.

¿Cómo puedo solucionar este problema?

enter image description here

+0

¿Marque en caso de que tenga ** espacio ** después de '{0}'? – V4Vendetta

+0

Hola! No lo tengo 100% –

Respuesta

15

Puedes solucionar este problema poniendo {} en la parte delantera del formato de cadena.

StringFormat="{}{0}{1}/{2}" 

El MSDN Page hace un trabajo particularmente malo al explicar el formato.

Si nos fijamos en la página en la escape sequence se explica que un corchete de apertura al principio denota una extensión de marcado (por ejemplo, unión), y {0}{1}/{2} no es una extensión de marcado válido. No explica que no tenerlo como el primer personaje también funciona.

+0

Perfecto !!! ¡Funciona! ¿Como lo sabes? –

+0

Estoy tratando de encontrar mi referencia, pero recuerdo haberla leído en alguna parte. – Ray

+1

@DmitryBoyko encontró una fuente, una respuesta actualizada. – Ray