2011-08-10 2 views
1

좋아, 이상하게 들리 겠지만 더 나은 방법이있을 수 있지만 아직 보지 못했다. 내가 할 노력하고있어데이터 템플릿에서 컨트롤의 속성에 바인딩 할 수 있습니까?

난 단지 널 ListPicker을 정의 (즉, 쉽게 헤더를 제거

  1. 이다 필요한 것은 윈도우 폰 7

    아래 ListPicker 스타일을 변경할 수 있습니다. HeaderTemplate).

  2. 클릭 할 때 선택기가 항상 전체 모드로 전환되도록하십시오 (다시 한번 말하면, 쉽게, ItemCountThreshold를 1로 설정하십시오).
  3. 의 모양과는 ItemTemplate을가 (다시, 쉽게, 단지 정의한 FullModeItemTemplate) FullMode
  4. 보여 그 어느 것 하나의 항목 만 이후 ItemTemplate을 (에 ListPicker의 "HEADER"속성 값을 통합에, 내가 헤더 텍스트를 필요로 할 때 "내장 사용 "한 항목 내에서).

나는 얻을 수없는 그 숫자 4입니다.

나는 listpicker를 이렇게 정의했다. (지금은 리소스를 단순하게 유지하기 위해 템플릿 대신 인라인 템플릿을 직접 정의하고있다.)

 <phonekit:ListPicker Header="Header Text" x:Name="ListOfSounds" 
          SelectedItem="{Binding Path=DepartureChime, Mode=TwoWay, Converter={StaticResource EnumDescriptionToStringConverter}}" 
          ItemCountThreshold="1"> 
      <phonekit:ListPicker.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Orientation="Horizontal" Background="Transparent"> 
         <TextBlock Text="{TemplateBinding Header}" /> 
         <TextBlock Text="{Binding}" /> 
         <TextBlock Text=">" /> 
        </StackPanel> 
       </DataTemplate> 
      </phonekit:ListPicker.ItemTemplate> 

이제 모든 명백한 형식 비트를 무시하고, 제가하는 데 문제는 내가 DataTemplate을 내에서 {TemplateBinding 헤더}을 사용할 수 없다는 것입니다. ControlTemplate에서 아무 문제없이 사용했습니다. 내가 템플릿 컨트롤 (이 경우 listpicker)의 속성에서 것에 대해 이동하는 방법 만 잘 모르겠어요 같은

{TextOfHeader}{Content of selected Item}> 

이 ItemTemplate을의 결과가 있어야한다 항목이 표시됩니다.

아이디어가 있으십니까? RelativeSource

+0

WP7은 실버, 충분히 WPF –

+0

사실이 아니다를 사용합니다. 당신이 밖으로 시작할 때, 그들은 매우 비슷하게 보입니다. – DarinH

답변

0

가지고 장점 :

<TextBlock Text="{Binding Path=Header, RelativeSource={RelativeSource AncestorType={x:Type phonekit:ListPicker}}}" /> 
+0

'RelativeSource'는 7.0으로 Silverlight 3을 사용하여 Mango/7.1 SDK를 타겟팅하는 경우에만 사용할 수 있습니다. –

+0

relativesource를 찾았지만 제대로 작동하지 못했습니다. – DarinH

+0

이전 댓글을 수정할 수 없으므로 여기에서 다시 확인하십시오. – DarinH