2011-08-05 6 views
3

現在、ListPickerのテンプレートを更新しています。特に、私はフルモードポップアップの内容をスタイルしようとしています。この情報は、次のコードで定義されるように表示されます。Silverlight - テンプレート内のコンバーターの適用

<Popup x:Name="FullModePopup"> 
    <Border Background="{StaticResource PhoneChromeBrush}"> 
    <!-- Popup.Child should always be a Border --> 
    <Grid> 
     <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition/> 
     </Grid.RowDefinitions> 

     <ContentControl Grid.Row="0" Content="{TemplateBinding FullModeHeader}" 
         Foreground="{StaticResource PhoneForegroundBrush}" 
         FontFamily="{StaticResource PhoneFontFamilySemiBold}" 
         FontSize="{StaticResource PhoneFontSizeNormal}" 
         HorizontalAlignment="Left" Margin="24 12 0 0"/> 
     <ListBox x:Name="FullModeSelector" Grid.Row="1" 
      FontSize="{TemplateBinding FontSize}" 
      Margin="{StaticResource PhoneMargin}"> 
      <ListBox.ItemsPanel> 
      <ItemsPanelTemplate> 
       <StackPanel/> 
       <!-- Ensures all containers will be available during the Loaded event --> 
      </ItemsPanelTemplate> 
      </ListBox.ItemsPanel> 
     </ListBox> 
     </Grid> 
    </Border> 
    </Popup> 

私の挑戦があり、私はこのポップアップリストにバインドされた各項目のテキストをトリミングする必要があります。もっと重要なことに、私はコンバータでこれを行う必要があります。これも可能ですか?このテンプレートでコンバータを使用するにはどうすればよいですか?従来、私は次のようなものを使用しました:

<TextBlock Text="{Binding Path=Name, Converter={StaticResource myConverter}}" /> 

私のListPickerのポップアップ内の項目にどのようにコンバータを適用しますか?

ありがとうございました!

答えて

2

これはあなたが探しているものですか?

基本的にitemtemplateをオーバーライドし、テキストブロックを入れてバインディングにコンバーターを適用します。ここでは、この

<ListBox ItemsSource="{StaticResource customers}" Width="350" Margin="0,5,0,10"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal"> 
        <TextBlock Padding="5,0,5,0" 
      Text="{Binding FirstName, Converter={StaticResource yourConverter}}" /> 
       </StackPanel> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 

同様

msdnドキュメント

HTH

+0

すごいです!どうもありがとうございます! – user609886

関連する問題