Il existe déjà un very similar question. En fait, le résultat de la réponse dans ce post est exactement ce que je veux, mais je n'ai pas de code derrière pour placer ce code. Toute notre logique est encapsulée dans un ViewModel. Puisque le ViewModel n'est pas supposé avoir de références directes à des éléments visuels spécifiques, ce code ne peut pas exister non plus. Existe-t-il un moyen d'effectuer la même chose dans XAML, ou ai-je finalement trouvé une raison pour être obligé de créer des fichiers codebehind?Force la validation sur les contrôles liés de XAML?
1
A
Répondre
1
Vous pouvez essayer de faire quelque chose avec properties..it attaché est un peu compliqué, mais il fait la même chose que l'autre réponse, donc je pense que cela devrait fonctionner:
public class DependencyPropertyCollection : List<DependencyProperty>
{ }
public static class ValidationUtil
{
public static readonly DependencyProperty ForceValidationProperty =
DependencyProperty.RegisterAttached("ForceValidation", typeof(DependencyPropertyCollection), typeof(ValidationUtil), new PropertyMetadata(OnForceValidationChanged));
private static void OnForceValidationChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
FrameworkElement element = (FrameworkElement)sender;
element.Loaded += OnElementLoaded;
}
private static void OnElementLoaded(object sender, RoutedEventArgs e)
{
FrameworkElement element = (FrameworkElement)sender;
element.Loaded -= OnElementLoaded;
foreach (DependencyProperty property in GetForceValidation(element))
element.GetBindingExpression(property).UpdateSource();
}
public static DependencyPropertyCollection GetForceValidation(DependencyObject obj)
{
return (DependencyPropertyCollection)obj.GetValue(ForceValidationProperty);
}
public static void SetForceValidation(DependencyObject obj, DependencyPropertyCollection value)
{
obj.SetValue(ForceValidationProperty, value);
}
}
Et vous l'utiliser comme ceci:
<TextBlock Text="{Binding Text}">
<local:ValidationUtil.ForceValidation>
<local:DependencyPropertyCollection>
<x:StaticExtension Member="TextBlock.TextProperty"/>
</local:DependencyPropertyCollection>
</local:ValidationUtil.ForceValidation>
</TextBlock>
A l'intérieur de la collection, vous spécifiez chaque DependencyProperty qui a une liaison que vous voulez valider.
Questions connexes
- 1. Validation sur les contrôles dynamiques
- 2. ASP.NET jQuery - Contrôles liés
- 3. Contrôles de validation pour les formulaires Windows?
- 4. Ombre WPF sur les contrôles de la pile
- 5. Contrôles liés aux données imbriqués ASP.NET
- 6. Asp.net force force sur detailsview/formview
- 7. Events Passing Cliquez sur Composite WPF/XAML Contrôles
- 8. Comportement des contrôles de validation ASP.Net
- 9. L'espacement de validation d'asp.net est foiré avec 2 contrôles de validation sur une zone de texte
- 10. Comment sont liés les ItemCollections de ListView?
- 11. Réinitialiser la force sur une requête ajax?
- 12. Mise à jour des contrôles liés à ApplicationSettings
- 13. WPF Force rebind
- 14. mxmlc avec les deux rsls liés et non liés?
- 15. Application de filtres sur les contrôles
- 16. Comment ajouter plusieurs contrôles de boîte à outils en XAML
- 17. Meilleures pratiques lors de l'application de la mise en forme conditionnelle dans les contrôles liés aux données?
- 18. SQLite sur iPhone - techniques pour traquer les bugs liés multithreading-
- 19. Désactiver tous les contrôles Validator sur une page
- 20. Désactiver certains contrôles de validation ASP.Net lorsqu'une case est cochée
- 21. Communication entre les contrôles utilisateur sur la page - C#/ASP.NET
- 22. Conversion de la zone de texte XAML en C# avec validation
- 23. Actualiser tous les contrôles sur le formulaire
- 24. Itérer sur les contrôles dans le répéteur
- 25. Les contrôles de validation dynamique ne fonctionnent pas dans le panneau de mise à jour
- 26. sites liés à la sécurité
- 27. Validation des paramètres sur les rapports
- 28. Comment accéder à la valeur du contrôle lié sur un onglet non affiché pour validation?
- 29. validation des contrôles dynamiques à l'aide de jquery
- 30. Gestionnaire d'événements côté client lors de la validation des contrôles de validateur asp.net