2013-07-10 3 views
0

Je suis nouveau avec WPF.Je veux créer une barre d'outils personnalisée avec des boutons standart comme ci-dessous.when je fais glisser et déposer le contrôle de la boîte à outils, tous les boutons doivent automatiquement ajouter du texte et des images.Je veux aussi ajouter la propriété CommandName pour chaque bouton et quand j'ai cliqué je veux la commande de liaison dans viewmodel avec le nom de commande. Pourriez-vous s'il vous plaît m'aider?WPF barre d'outils personnalisée

<ToolBar VerticalAlignment="Top"> 
     <Button>Add</Button> 
     <Separator></Separator> 
     <Button>Update</Button> 
     <Separator></Separator> 
     <Button>Delete</Button> 
     <Separator></Separator> 
     <Button>Clear</Button> 
     <Separator></Separator> 
     <Button>Logout</Button> 
     <Separator></Separator> 
     <Button>Excel</Button> 

    </ToolBar> 

Répondre

0

merci beaucoup. problème était i na pas mis DefaultStyleKey.So quand je fais glisser le contrôle de boîte à outils des boutons que j'ajouter à ControlTemplate n'a pas apper sur la solution window.basicly est

public class StToolBar:ToolBar 
    { 
     public StToolBar() 
     { 
      this.DefaultStyleKey = typeof(StToolBar); 
     } 
    } 

generic.xaml

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:local="clr-namespace:UserControl"> 
    <Style TargetType="{x:Type local:StToolBar}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type local:StToolBar}"> 
         <ToolBar> 
          <Button>Add</Button> 
          <Button>Update</Button> 
         </ToolBar> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 


</ResourceDictionary> 
0

Vous aurez besoin de la classe RelayCommand que vous pouvez obtenir à partir de here.

Ensuite, vous créez un RelayCommand dans votre ViewModel et lier la commande avec le bouton comme suit

<Button Command="{Binding YourCommandName}"> 

Donc, fondamentalement, vous avez besoin d'un contrôle personnalisé. Placez ces boutons dans le modèle de contrôle du contrôle personnalisé. Expose les événements de clic pour ces boutons. Dites que le nom de l'événement click pour le bouton Add est ClickAdd. Rabattre commande comme suit pour ajouter le bouton dans XAML

<local:YourCustomControl> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="ClickAdd"> 
      <i:InvokeCommandAction Command="{Binding YourCommandName}"> </i:InvokeCommandAction> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
</local:YourCustomControl> 

xmlns: i = "clr-namespace: System.Windows.Interactivity; assemblage = System.Windows.Interactivity"

+0

Nitesh merci pour response.actually j'ai besoin de contrôle de barre d'outils personnalisé avec des boutons standart sur it.add mise à jour supprimer clear.when je fais glisser et déposer le contrôle de toolbox à la fenêtre, barre d'outils devrait charger avec standart buttons.then je lierai les commandes aux butons – ozman