Silverlight - применение конвертеров в шаблонах - PullRequest
3 голосов
/ 05 августа 2011

Я сейчас обновляю шаблон ListPicker.В частности, я пытаюсь стилизовать содержимое всплывающего окна полного режима.Эта информация, по-видимому, определяется в следующем коде:

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

Спасибо!

1 Ответ

2 голосов
/ 05 августа 2011

Это то, что вы ищете?

В основном переопределяем шаблон элемента, вставляем текстовый блок и применяем конвертер к привязке.

Как это

<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

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...