2010-12-09 4 views
2

ItemsControlItemsSource이 ints ID 목록에 바인딩되어 있습니다. 변환기는 ID를 사용하여 사용자에게 표시 할 이름을 조회합니다. XAML에서 어떻게이 작업을 수행 할 수 있습니까? 여기에 지금까지 무엇을 가지고,하지만 작동하지 않습니다Silverlight : ItemsControl과 함께 변환기를 사용하는 방법?

<ItemsControl ItemsSource="{Binding Topics}"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal"> 
        <TextBlock Text="{Binding FallbackValue='topic name', Converter={StaticResource topicToStrConverter}}" Margin="0,10,0,0"/> 
        <Button> 
         <Image Source="/PlumPudding;component/Images/appbar.cancel.rest.png" /> 
        </Button> 
       </StackPanel> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 

정말, 컨버터에 인수 템플릿에 표시되는 전체 항목이기 때문에 내가 원하는 - 아니 그 속성 목. 이 구문은 무엇입니까? 내가 실버 라이트 4

답변

0

주제가 목록 인 경우 가지고있는 항목이 정확합니다.

그러나 주제가 목록이고 주제가 주제 클래스의 속성 인 경우 "Path = Id"를 사용해야합니다. 그래서 {FallbakcValue = '즐'을 바인딩, 경로 = 이드, 변환기 = {정적 리소스 yourConverter은}

당신에게 두 번째 질문에 대답하려면 : 는 "제가 컨버터에 인수로 원하는 것은 표시되는 전체 항목입니다 템플릿에서 - 해당 항목의 속성이 아닙니다. "

이 구문은 전체 개체를 List에 전달하므로 사용자의 경우 int가 변환기로 전달됩니다. 다시 목록 인 경우 Topic 개체가 변환기로 전달됩니다.

0

귀하의 코드를 잘 내 의견이다를 사용하고

는 ..

은 '계산기'에서 그 문제를 보인다. topicToStrConverter의 코드를 디버그하십시오.

0

항목 컨트롤 또는 해당 부모 중 하나에 대해 DataContext를 설정해야합니다. 이 작업을 수행하지 않으면 바인딩에 대한 컨텍스트가 없습니다.

관련 문제