109

私はのようなマルチバインディングを持っています

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

そして、上記の2つのバインディングのいずれかに「123」などの固定値を渡したいと思います。XAMLを使用してそれを行うにはどうすればよいですか?

4

4 に答える 4

159

値が単純な場合は、バインディングstringのプロパティで定数として指定できます。Source他のプリミティブデータ型の場合は、静的リソースを定義してこれを参照する必要があります。

XAMLのルートでmscorlibでsys指す名前空間を定義すると、次のように機能するはずです。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>
于 2010-07-27T07:34:36.830 に答える
113

または、上記の2つの答えを組み合わせます。

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

これは、リソースの恨みなしで適切なタイプを提供します。

于 2012-07-14T20:43:25.883 に答える
29

私は質問に完全には従いませんが、2つのオプションがあります:

マルチバインディングに行<Binding Source="123" />を入れると、123がバインド値としてコンバーターに渡されます。

マルチバインディングを入れConverterParameter="123"ます:

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

于 2010-07-27T07:37:18.390 に答える
8

私はこれが特に良い答えだと言っているわけではありませんが、ここに別のアプローチがあります:

<Binding Path="DoesNotExist" FallbackValue="123" />
于 2015-07-01T09:54:52.583 に答える