2010-10-16 9 views
1

Je veux creat mon propre contrôle:comment référencer le contrôle actuel dans la grille?

public class DataGrid : System.Windows.Controls.DataGrid 

Dans la définition de style, je veux ajouter un bouton au-dessus de la grille, donc je l'ai écrit:

<Style TargetType="local:DataGrid"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="local:DataGrid"> 
       <Grid> 
        <Button Content="Addnew"></Button> 
        <?????> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
</Style> 

Mais comment puis-je dire XAML mettre la grille à la postion ????? ?

Merci à tous !! Etes-vous certain de vouloir utiliser l'héritage ici?

Répondre

0

Vous devez envisager de créer un autre contrôle qui contient un DataGrid plutôt que d'hériter de DataGrid et utiliser le modèle par défaut.

Si vous décidez que vous avez besoin de personnaliser le modèle du DataGrid, vous devrez recréer l'intégralité du modèle DataGrid. Vous pouvez trouver le modèle DataGrid d'origine en ouvrant l'assembly DataGrid dans le réflecteur .net ou une application similaire et en ouvrant la ressource incorporée "generic.xaml". Ce fichier contiendra un ResourceDictionary définissant tous les styles par défaut pour les contrôles définis dans l'assembly. Vous pouvez copier le modèle par défaut à partir d'ici et le modifier si nécessaire. Alternativement, si vous avez Expression Blend vous pouvez le faire automatiquement en cliquant avec le bouton droit sur le contrôle DataGrid et en choisissant "modifier une copie de ce modèle" (ou quelque chose comme ça, je ne me souviens pas de la formulation exacte le dessus de ma tête).