我有像
这样的多重绑定<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource myConverter}">
<Binding Path="myFirst.Value" />
<Binding Path="mySecond.Value" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
我想传递固定值,例如“123”到上面两个绑定中的一个。我怎么能用XAML做到这一点?
答案 0 :(得分:134)
如果您的值只是string
,则可以将其指定为绑定的Source
属性中的常量。如果它是任何其他原始数据类型,则需要定义静态资源并引用它。
在XAML的根目录中定义sys
命名空间以指向mscorlib中的System
,以下内容应该有效:
<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>
答案 1 :(得分:91)
或者,结合上面的两个答案:
<MultiBinding Converter="{StaticResource ScalingConverter}">
<Binding>
<Binding.Source>
<sys:Double>0.5</sys:Double>
</Binding.Source>
</Binding>
<Binding ElementName="TC" Path="ActualWidth" />
</MultiBinding>
这提供了没有资源kludge的正确类型。
答案 2 :(得分:22)
我不太关注这个问题,但有两种选择:
将行<Binding Source="123" />
放入多重绑定中会将123作为绑定值传递给转换器。
将ConverterParameter="123"
放入MultiBinding:
<MultiBinding Converter="{StaticResource conv}" ConverterParameter="123">
答案 3 :(得分:3)
我并不是说这是一个特别好的答案,但这是另一种方法:
<Binding Path="DoesNotExist" FallbackValue="123" />