2009-09-04 7 views
0

J'essaie de convertir cette zone de texte xaml avec validation en C# afin qu'elle puisse être créée dynamiquement et remplie à partir du code. Je suis bloqué en créant les liaisons de validation. Quelqu'un peut-il fournir des conseils?Conversion de la zone de texte XAML en C# avec validation

<TextBox Height="20" Width="200" > 
     <Binding RelativeSource="{x:Static RelativeSource.Self}" Path="Text" > 
      <Binding.ValidationRules> 
       <runtime:StandardTextBoxValidationRule/> 
      </Binding.ValidationRules> 
     </Binding> 
</TextBox> 
+0

Êtes-vous simplement la création dynamique de la zone de texte à partir de la page WPF? –

+0

Non, il est créé dans une classe de génération de contrôle située dans le même assembly que la page WPF. – KithKann

Répondre

1

Vous pouvez le faire comme ceci:

TextBox textBox = // Get or create the text box 

var binding = new Binding(); 
binding.Source = RelativeSource.Self; 
binding.Path = new PropertyPath("Text"); 
binding.ValidationRules.Add(new StandardTextBoxValidationRule()); 
textBox.SetBinding(TextBox.TextProperty, binding); 
+0

Je devais ajouter ce qui suit pour le faire fonctionner binding.Path = new PropertyPath ("Text"); Merci encore. – KithKann

+0

Heureux que cela a fonctionné. J'ai ajouté cela à ma réponse, aussi, au cas où d'autres personnes le trouveraient. –

+0

Vous pouvez également utiliser 'new Binding (" Text ")' –

Questions connexes