2010-08-26 9 views

Respuesta

9

Puede utilizar convertidores para este propósito, y mi biblioteca WPF Converters incluye un ExpressionConverter que le permite hacer exactamente eso:

Width="{Binding Width, ElementName=lstMine, Converter={con:ExpressionConverter {}{0}-100}}" 
+0

puede usted explicar esta parte : {} {0} -100} Me enteré de este método después de leer su respuesta y busqué en Google para encontrar: http://www.thejoyofcode.com/WPF_Quick_Tip_Converters_as_MarkupExtensions.aspx ¿es lo mismo? – sarath

+0

@Sarath: el enlace que proporcionó es para un convertidor con un propósito muy específico: la multiplicación. El convertidor de expresiones que proporcioné toma casi cualquier expresión C# y la evalúa. Por ejemplo, puede vincular a ActualWidth y ActualHeight en un enlace múltiple, y calcular su suma con '{0} + {1}'. Los números en las llaves son marcadores de posición para los valores encuadernados. El principio '{}' es solo un mecanismo de escape en XAML para indicarle que no trate el siguiente '{' como una extensión de marcado. Entonces la expresión real es simplemente '{0} -100', y' {0} 'se sustituye por' Ancho '. –

+0

Una última cosa: es probable que desee 'ActualWidth' en lugar de' Ancho'. Este último no siempre está configurado, y le dice al motor de diseño cuánto ancho le gustaría asignar al elemento, mientras que el primero siempre está configurado y contiene el ancho real asignado al elemento, que a menudo es diferente. –

3

uso convertidor para estos fines

Cuestiones relacionadas