2012-07-23 1 views
0

Je souhaite que les commandes de ma fenêtre wpf changent selon que l'utilisateur affiche ou modifie/insère des données. Par exemple, je souhaite afficher une étiquette à l'affichage, mais une zone de texte (ou une liste déroulante, etc.) au moment de l'édition/insertion. Puis-je le faire avec DataTemplates ou dois-je avoir deux contrôles pour chaque élément de données et changer la visibilité en fonction du mode dans lequel se trouve le formulaire?Différentes commandes pour l'édition et l'affichage des données

Si DataTemplates va faire le travail, quelqu'un peut-il me diriger vers quelques exemples?

merci beaucoup mcalex

Répondre

0

À mon avis, la meilleure façon de faire est d'utiliser des modèles de données differrent pour le contrôle, dans le cas où vous devez toujours les utiliser ensemble. Dans tous les cas, vous devez sélectionner des modèles de commutateurs ou des mécanismes de contrôle. Vous pouvez utiliser DataTrigger (first answer) ou ValueConverter

+0

Ouais, a fini par mettre le ControlTemplate (non DataTemplate) pour les étiquettes etc zones de texte, et combiné cela avec une propriété de dépendance (ReadOnly) pour faire face à l'état modifiable. Cela m'a orienté dans cette direction, donc je vais le marquer comme la réponse. – mcalex

0
<StackPanel> 
     <Label Name="header" Content="Add New Employee" Style="{StaticResource Heading}"/> 
     <Separator></Separator> 
     <GroupBox Margin="0,10,0,0"> 
      <Grid> 
       <Grid Margin="10,40,10,10" Name="AddEmployeeGrid"> 
        <Grid.RowDefinitions> 
         <RowDefinition Height="30"/> 
         <RowDefinition Height="30"/> 
         <RowDefinition Height="30"/> 
         <RowDefinition Height="30"/> 
         <RowDefinition Height="30"/> 
         <RowDefinition Height="30"/> 
         <RowDefinition Height="30"/> 
         <RowDefinition Height="30"/> 
         <RowDefinition Height="30"/> 
         <RowDefinition Height="30"/> 
        </Grid.RowDefinitions> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="100"/> 
         <ColumnDefinition Name="MarginColumn" Width="30"/> 
         <ColumnDefinition Width="*"/> 
        </Grid.ColumnDefinitions> 
+1

S'il vous plaît ajouter une description de la façon dont cela résout la question des utilisateurs. Lisez également [Comment répondre] (http://stackoverflow.com/help/how-to-answer) – Marusyk

Questions connexes