programing

다중 바인딩에서 1개의 바인딩에 대해 상수 값을 전달하려면 어떻게 해야 합니까?

sourcejob 2023. 4. 9. 21:27
반응형

다중 바인딩에서 1개의 바인딩에 대해 상수 값을 전달하려면 어떻게 해야 합니까?

저는 이런 다중 결합을 가지고 있어요.

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

그리고 위의 두 바인딩 중 하나에 고정값(예: "123")을 전달합니다.XAML을 사용하여 어떻게 하면 좋을까요?

고객의 가치가 단순히string, 에서 상수로 지정할 수 있습니다.Source제본의 성질다른 기본 데이터 유형인 경우 정적 리소스를 정의하고 참조해야 합니다.

의 정의sys가리키는 XAML 루트의 네임스페이스Systemmscorlib 및 다음 기능이 있습니다.

<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>

또는 위의 두 가지 답변을 조합하면 다음과 같습니다.

문서 머리글에 네임스페이스 sys를 정의합니다.

xmlns:sys="clr-namespace:System;assembly=mscorlib"

그 후:

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

리소스 크러지 없이 적절한 유형을 제공합니다.

질문을 잘 이해하지는 못하지만 두 가지 옵션이 있습니다.

선을 그어라<Binding Source="123" />멀티바인딩의 경우 변환기에 바인딩된 값으로 123이 전달됩니다.

놓다ConverterParameter="123"멀티바인딩:

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

특별히 좋은 대답은 아니지만, 여기 또 다른 방법이 있습니다.

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

언급URL : https://stackoverflow.com/questions/3340821/how-can-i-pass-a-constant-value-for-1-binding-in-multi-binding

반응형