다중 바인딩이있는 StringFormat을 사용하여 멀티 핀딩을위한 짧은 XAML 구문은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1861009

문제

단일 바인딩의 경우 다음을 사용합니다.

<TextBlock>
  <TextBlock.Text>
    <MultiBinding StringFormat="{}{0}">
      <Binding Path=EmployeeName/>
    </MultiBinding>
  </TextBlock.Text>
</TextBlock>

또는 짧은 구문 :

<TextBlock 
 Text="{MultiBinding StringFormat=\{0\}, Bindings={Binding Path=EmployeeName}}"/>

이제 멀티 핀딩이있는 경우 :

<TextBlock>
  <TextBlock.Text>
    <MultiBinding StringFormat="{}{0}, {2}">
      <Binding Path="EmployeeName"/>
      <Binding Path="Age"/>
    </MultiBinding>
  </TextBlock.Text>
</TextBlock>

더 짧은 구문은 무엇입니까?

<TextBlock 
 Text="{MultiBinding StringFormat=\{0\}, Bindings={Binding ??????}"/>
도움이 되었습니까?

해결책

MSDN에 따르면, 두 번째 예제 ( "단일 바인딩을 사용한 멀티 핀딩을 사용한 짧은 구문")는 작동하지 않아야합니다. .NET 3.5 또한 .NET 4.0:

메모:

멀티 핀딩 및 우선 순위 결합은 XAML Extension 구문을 지원하지 않습니다 (동일한 바인딩베이스 클래스를 공유하더라도 실제로 바인딩을위한 XAML 동작을 구현 함).

따라서 그것이 당신에게 효과가 있다면, 그것은 우연히, 그것은지지되는 행동이 아닙니다.


추신 : 당신은 multibinding을 하나의 제본. 다음으로 충분해야합니다.

<TextBlock>
    <TextBlock.Text>
        <Binding Path="EmployeeName" />
    </TextBlock.Text>
</TextBlock>

또는

<TextBlock Text="{Binding Path=EmployeeName}"/>

또는 더 짧은

<TextBlock Text="{Binding EmployeeName}"/>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top