2012-08-18 3 views
1

J'ai un modèle défini pour le contrôle Silverlight DataPager avec un CombboBox PageSize valeurs avecSilverlight 4/5 DataPager Modèle PageSize ComboBox

Modèle:

<Style TargetType="sdk:DataPager"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="sdk:DataPager"> 
       <Grid x:Name="Root" Background="Transparent"> 
        <Border BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2" MinHeight="24" Padding="{TemplateBinding Padding}"    VerticalAlignment="Bottom"> 
         <StackPanel HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Orientation="Horizontal" VerticalAlignment="Stretch"> 
          <Button x:Name="FirstPageButton" BorderBrush="{StaticResource BorderBrushColor}" BorderThickness="1" Background="{StaticResource BackgroundColor}" Foreground="{StaticResource ForegroundColor}" HorizontalAlignment="Right" Height="20" Padding="1" Template="{StaticResource ButtonTemplate}" VerticalAlignment="Center" Width="20" Margin="0,0,3,0"> 
           <Grid Height="9" Width="8"> 
            <Path Data="M0,1 L1,0 L1,2 Z" HorizontalAlignment="Right" Height="9" Stretch="Fill" Width="5" Fill="White"/> 
            <Rectangle HorizontalAlignment="Left" Width="2" Fill="White"/> 
           </Grid> 
          </Button> 
          <Button x:Name="PreviousPageButton" BorderBrush="{StaticResource BorderBrushColor}" BorderThickness="1" Background="{StaticResource BackgroundColor}" Foreground="{StaticResource ForegroundColor}" HorizontalAlignment="Right" Height="20" Padding="1" Template="{StaticResource ButtonTemplate}" VerticalAlignment="Center" Width="20" Margin="0,0,3,0"> 
           <Path Data="M0,1 L1,0 L1,2 Z" HorizontalAlignment="Center" Height="9" Stretch="Fill" Width="5" Fill="White"/> 
          </Button> 
          <Border x:Name="Separator1" BorderThickness="1,0,1,0" Margin="0, 3" Width="1" BorderBrush="#FF747474"/> 
          <StackPanel x:Name="NumericButtonPanel" Margin="1" Orientation="Horizontal"/> 
          <StackPanel x:Name="PageSizeDisplay" Orientation="Horizontal"> 


           <ComboBox SelectedValue="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=PageSize, Mode=TwoWay}" 
              SelectedValuePath="Content" Width="60" Margin="3" 
              BorderBrush="{TemplateBinding BorderBrush}" Foreground="{TemplateBinding Foreground}"> 
            <ComboBoxItem Content="10"></ComboBoxItem> 
            <ComboBoxItem Content="20" IsSelected="True"></ComboBoxItem> 
            <ComboBoxItem Content="50"></ComboBoxItem> 
            <ComboBoxItem Content="100"></ComboBoxItem> 
            <ComboBoxItem Content="200"></ComboBoxItem> 
           </ComboBox> 


          </StackPanel> 
          <StackPanel x:Name="PageDisplay" Orientation="Horizontal"> 
           <TextBlock x:Name="CurrentPagePrefixTextBlock" Foreground="{TemplateBinding Foreground}" Margin="4,0,0,0" VerticalAlignment="Center" Width="Auto"/> 
           <TextBox x:Name="CurrentPageTextBox" BorderBrush="{TemplateBinding BorderBrush}" Foreground="{TemplateBinding Foreground}" Height="Auto" Margin="4,2,4,2" Style="{StaticResource TextBoxStyle1}" TextWrapping="Wrap" VerticalAlignment="Center" Width="40"/> 
           <TextBlock x:Name="CurrentPageSuffixTextBlock" Foreground="{TemplateBinding Foreground}" Margin="0,0,4,0" VerticalAlignment="Center" Width="Auto"/> 
          </StackPanel> 
          <Border x:Name="Separator2" BorderThickness="1,0,1,0" Margin="0,3" Width="1" BorderBrush="#FF747474"/> 
          <Button x:Name="NextPageButton" BorderBrush="{StaticResource BorderBrushColor}" BorderThickness="1" Background="{StaticResource BackgroundColor}" Foreground="{StaticResource ForegroundColor}" HorizontalAlignment="Right" Height="20" Padding="1" Template="{StaticResource ButtonTemplate}" VerticalAlignment="Center" Width="20" Margin="3,0"> 
           <Path Data="M0,0 L1,1 L0,2 Z" HorizontalAlignment="Center" Height="9" Stretch="Fill" Width="5" Fill="White"/> 
          </Button> 
          <Button x:Name="LastPageButton" BorderBrush="{StaticResource BorderBrushColor}" BorderThickness="1" Background="{StaticResource BackgroundColor}" Foreground="{StaticResource ForegroundColor}" HorizontalAlignment="Right" Height="20" Padding="1" Template="{StaticResource ButtonTemplate}" VerticalAlignment="Center" Width="20"> 
           <Grid Height="9" Width="8"> 
            <Path Data="M0,0 L1,1 L0,2 Z" HorizontalAlignment="Left" Height="9" Stretch="Fill" Width="5" Fill="White"/> 
            <Rectangle HorizontalAlignment="Right" Width="2" Fill="White"/> 
           </Grid> 
          </Button> 
         </StackPanel> 
        </Border> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Utilisation:

<sdk:DataPager x:Name="pager" Source="{Binding Path=ItemsSource, ElementName=myGrid}" PageSize="50" /> 

Mon DataGrid est lié à un PagedCollectionView, mais toujours le PageSizeComboBox n'affiche pas la bonne valeur. (Si IsSelected propriété est pas définie, il n'y a pas l'élément sélectionné dans le ComboBox)

J'ai également essayé de placer la propriété PageSize du PagedCollectionView, qui ne permet pas non plus.

Une idée de ce que je fais mal?

Répondre

0

Vous essayez de lier des valeurs ComboBoxItem avec des valeurs int32.

essayer ceci:

<ComboBox SelectedValue="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=PageSize, Mode=TwoWay}" 
Width="60" Margin="3" 
BorderBrush="{TemplateBinding BorderBrush}" Foreground="{TemplateBinding Foreground}"> 

<sys:Int32>10</sys:Int32> 
<sys:Int32>20</sys:Int32> 
<sys:Int32>50</sys:Int32> 

ajouter également l'espace de noms suivant:

xmlns:sys="clr-namespace:System;assembly=mscorlib"