Как передать постоянное значение для 1 привязки в многосвязном?
У меня есть многосвязывание, например
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource myConverter}">
<Binding Path="myFirst.Value" />
<Binding Path="mySecond.Value" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
И я хочу передать фиксированное значение, например. "123" к одному из двух привязок выше. Как я могу это сделать с помощью XAML?
Ответы
Ответ 1
Если ваше значение равно просто string
, вы можете указать его как константу в свойстве Source
привязки. Если это какой-либо другой примитивный тип данных, вам нужно определить статический ресурс и ссылаться на него.
Определите пространство имен sys
в корне XAML, чтобы указать на System
в mscorlib, и следующее должно работать:
<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>
Ответ 2
Или, объединив два ответа выше:
<MultiBinding Converter="{StaticResource ScalingConverter}">
<Binding>
<Binding.Source>
<sys:Double>0.5</sys:Double>
</Binding.Source>
</Binding>
<Binding ElementName="TC" Path="ActualWidth" />
</MultiBinding>
Что обеспечивает правильный тип без ресурса kludge.
Ответ 3
Я не совсем понимаю вопрос, но есть два варианта:
Поместите строку <Binding Source="123" />
в ваш мультисвязью, чтобы передать 123 в качестве связанного значения в ваш конвертер.
Поместите ConverterParameter="123"
в свой MultiBinding:
<MultiBinding Converter="{StaticResource conv}" ConverterParameter="123">
Ответ 4
Я не говорю об этом особенно хорошо, но вот еще один подход:
<Binding Path="DoesNotExist" FallbackValue="123" />