wpf binding multibinding

wpf - ¿Cómo puedo pasar un valor constante por 1 enlace en multi-binding?



multibinding (4)

Tengo un enlace múltiple como

<TextBlock> <TextBlock.Text> <MultiBinding Converter="{StaticResource myConverter}"> <Binding Path="myFirst.Value" /> <Binding Path="mySecond.Value" /> </MultiBinding> </TextBlock.Text> </TextBlock>

Y quiero pasar un valor fijo, por ejemplo, "123" a uno de los dos enlaces anteriores. ¿Cómo puedo hacer eso usando XAML?


No acabo de seguir la pregunta, pero hay dos opciones:

Ponga la línea <Binding Source="123" /> en su multibinding pasará 123 como un valor vinculado a su convertidor.

Coloque ConverterParameter="123" en su MultiBinding:

<MultiBinding Converter="{StaticResource conv}" ConverterParameter="123">


No estoy diciendo que esta sea una respuesta especialmente buena, pero este es otro enfoque:

<Binding Path="DoesNotExist" FallbackValue="123" />


O, combinando las dos respuestas anteriores:

<MultiBinding Converter="{StaticResource ScalingConverter}"> <Binding> <Binding.Source> <sys:Double>0.5</sys:Double> </Binding.Source> </Binding> <Binding ElementName="TC" Path="ActualWidth" /> </MultiBinding>

Que proporciona el tipo correcto sin el kludge de Recursos.


Si su valor es simplemente una string , puede especificarlo como una constante en la propiedad Source de un enlace. Si se trata de otro tipo de datos primitivos, debe definir un recurso estático y hacer referencia a esto.

Defina el espacio de nombres sys en la raíz del XAML para apuntar a System en mscorlib, y lo siguiente debería funcionar:

<TextBlock> <TextBlock.Resources> <sys:Int32 x:Key="fixedValue">123</sys:Int32> </TextBlock.Resources> <TextBlock.Text> <MultiBinding Converter="{StaticResource myConverter}"> <Binding Path="myFirst.Value" /> <Binding Source="{StaticResource fixedValue}" /> </MultiBinding> </TextBlock.Text> </TextBlock>