开发者

Silverlight - Applying Converters within Templates

I am currently updating the template of a ListPicker. In particular, I'm trying to style the contents of the full mode popup. This information appears to be defined in the following code:

<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 -->
            </ItemsPanelTe开发者_Go百科mplate>
          </ListBox.ItemsPanel>
        </ListBox>
      </Grid>
    </Border>
  </Popup>

My challenge is, I need to trim the text of each item bound in this popup list. More importantly, I need to do this with a converter. Is this even possible? How do I use a converter in this template? Traditionally, I've used something like:

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

How do I apply a Converter to the items in the Popup of my ListPicker?

Thank you!


Is this what you are looking for?

Basically overriding the itemtemplate, putting in a textblock and apply your converter to the binding.

Like this

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

Here is the msdn documentation

HTH

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜