2010-06-16 7 views
1

J'ai un gros problème. J'utilise des contrôles supplémentaires pour Wpf. L'un d'eux est Telerik RadWindow Ce contrôle est déjà basé sur un modèle. Maintenant, je veux créer une fenêtre personnalisée avec héritera de RadWindow, et faire un modèle personnalisé, par exemple. Une fenêtre de base contiendra la grille et deux boutons, la deuxième fenêtre de base contiendra deux grilles (maître - détail). Le problème est que les modèles ne prennent pas en charge l'héritage. Peut-être est une autre façon de modéliser uniquement le contenu de Winodow?Modèles et héritage

Mon code, qui ne (ne concerne pas la fenêtre vide apparaît, donc modèle) ne pas fonctionner

<Style TargetType="{x:Type local:TBaseRjWindow}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type local:TBaseRjContent}"> 

       <Border Background="{TemplateBinding Background}" 
         BorderBrush="{TemplateBinding BorderBrush}" 
         BorderThickness="{TemplateBinding BorderThickness}"> 

        <Grid Name="mGrid"> 

         <Grid.ColumnDefinitions> 
          <ColumnDefinition /> 
         </Grid.ColumnDefinitions> 
         <Grid.RowDefinitions> 
          <RowDefinition /> 
          <RowDefinition MaxHeight="40" MinHeight="30" /> 

          <RowDefinition MaxHeight="40" MinHeight="30" /> 
          <RowDefinition Height="Auto"  /> 
          <RowDefinition MaxHeight="40" MinHeight="30" /> 
         </Grid.RowDefinitions> 

         <telerik:RadGridView Margin="10,10,10,10" Name="grid" Grid.Row="0" Grid.Column="0"  VerticalAlignment="Stretch" HorizontalAlignment="Stretch" ScrollMode="Deferred" AutoGenerateColumns="False" Width="Auto" > 
         </telerik:RadGridView> 
         <telerik:RadDataPager Grid.Row="1" Grid.Column="0" 
     x:Name="radDataPager" 
     PageSize="50" 
     AutoEllipsisMode="None" 
     DisplayMode="First, Previous, Next, Text" 
     Margin="10,0,10,0"/> 

         <StackPanel Grid.Row="1" Grid.Column="0" Margin="5 5 5 5" HorizontalAlignment="Left" Orientation="Horizontal" Height="20" Width="Auto" VerticalAlignment="Center" > 

          <telerik:RadButton x:Name="btAdd" Margin="5 0 5 0" Content="Dodaj" /> 
          <telerik:RadButton x:Name="btEdit" Margin="5 0 5 0" Content="Edytuj" /> 
          <telerik:RadButton x:Name="btDelete" Margin="5 0 5 0" Content="Usun" /> 
         </StackPanel> 

         <StackPanel Name="addFields" Background="LightGray" Visibility="Collapsed" VerticalAlignment="Top" Grid.Row="2" Grid.Column="0" Width="Auto" Height="Auto" Orientation="Horizontal"> 
          <GroupBox Header="Szczegoly" Margin="2 2 2 2" > 
           <Grid VerticalAlignment="Top" DataContext="{Binding SelectedItem, ElementName=grid}" Name="_gAddFields" Margin="0 0 0 0" Width="Auto" Height="Auto" > 
           </Grid> 
          </GroupBox> 
         </StackPanel> 

         <StackPanel Grid.Row="3" Grid.Column="0" Margin="5 5 5 5" HorizontalAlignment="Right" Orientation="Horizontal" Height="25" Width="Auto" VerticalAlignment="Center" > 
          <telerik:RadButton x:Name="btSave" IsDefault="True" Width="60" Margin="5 0 5 0" Content="Zapisz" /> 
          <telerik:RadButton x:Name="btOK" IsDefault="True" Width="60" Margin="5 0 5 0" Content="Akceptuj" /> 
          <telerik:RadButton x:Name="btCancel" IsCancel="True" Width="60" Margin="5 0 5 0" Content="Anuluj" /> 
         </StackPanel> 
        </Grid> 

       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

S'il vous plaît aider

Répondre

0

Vous pouvez utiliser le ContentTemplate pour le Window. C'est un DataTemplate qui sera utilisé pour afficher le Content sur le Window.