2009-05-08 7 views
1

DataFrom fonctionne très bien avec AutoGenerateFields et aucun style, mais quand j'ajoute un style de zone de texte à la EditingElementStyle de DataFormTextField comme celui-ciÀ partir DataForm en mode édition

Style x:Key="FieldTextBoxStyle" TargetType="TextBox"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="TextBox"> 
       <Grid x:Name="RootElement"> 
           <Grid.Resources> 
            <Storyboard x:Key="Normal State"/> 
            <Storyboard x:Key="Focused State"/> 
           </Grid.Resources> 
           <ScrollViewer x:Name="ContentElement" Background="Transparent" Padding="{TemplateBinding Padding}" Margin="1,1,1,1"> 

           </ScrollViewer> 

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

et ce

DataForm dForm = new DataForm() { AutoGenerateFields = false, AutoEdit = true, AutoCommit = true, CommandButtonsVisibility = DataFormCommandButtonsVisibility.None, Foreground = new SolidColorBrush(Colors.Black), Header = "Basic Infomation" }; 

dForm.Fields.Add(new DataFormTextField() { FieldLabelContent = "Company Name", Binding = new Binding("Name"), EditingElementStyle = Resources["FieldTextBoxStyle"] as Style }); 

Je veux la forme pour démarrer en mode édition sans avoir à cliquer sur un bouton. Mais puisque le nom est requis

[Required] 

chaîne publique Nom; La liaison déclenche une erreur car Nom est vide par défaut ... Mon style est-il incorrect?

+0

Je vais avoir un problème similaire. Je lie mon formulaire de données à un objet qui a des champs obligatoires. En mode AutoEdit, la validation sur le premier champ se déclenche automatiquement. – ChadT

Répondre

0

J'ai découvert plus tard, mon erreur, cela a fonctionné pour moi, pour le fixer votre classe doit hériter de la classe d'entité ...

public class FixError : System.Windows.Ria.Data.Entity 
{ 
    private string _Name; 

    [Required] 
    public string Name 
    { 
     get 
     { 
      return this._Name; 
     } 
     set 
     { 
      if ((this._Name != value)) 
      { 
       this.ValidateProperty("Name", value); 
       this.RaiseDataMemberChanging("Name"); 
       this._Name = value; 
       this.RaiseDataMemberChanged("Name"); 
      } 
     } 
    } 
} 

Quelque chose comme ça ...

Questions connexes