我怎样才能传递一个绑定多个绑定的常量值?
我有一个多重绑定
<TextBlock> <TextBlock.Text> <MultiBinding Converter="{StaticResource myConverter}"> <Binding Path="myFirst.Value" /> <Binding Path="mySecond.Value" /> </MultiBinding> </TextBlock.Text> </TextBlock>
而且我想把一个固定的值例如“123”传递给上面两个绑定之一。 我怎样才能使用XAML?
如果您的值只是一个string
,您可以在绑定的Source
属性中将其指定为常量。 如果是其他任何原始数据types,则需要定义一个静态资源并引用它。
在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>
或者,结合以上两个答案:
<MultiBinding Converter="{StaticResource ScalingConverter}"> <Binding> <Binding.Source> <sys:Double>0.5</sys:Double> </Binding.Source> </Binding> <Binding ElementName="TC" Path="ActualWidth" /> </MultiBinding>
这提供了没有资源kludge的正确的types。
我不太理解这个问题,但有两个select:
把你的多重<Binding Source="123" />
的<Binding Source="123" />
作为绑定值传递给你的转换器。
在MultiBinding中放入ConverterParameter="123"
:
<MultiBinding Converter="{StaticResource conv}" ConverterParameter="123">
我不是说这是一个特别好的答案,但这是另一种方法:
<Binding Path="DoesNotExist" FallbackValue="123" />