Fermer

avril 11, 2019

Comment créer des expressions avec Telerik WPF ExpressionEditor


Dans l'article suivant, découvrez comment créer des expressions avec le contrôle ExpressionEditor dans l'interface utilisateur Telerik pour WPF.

Qu'est-ce que Magic?

La plupart d'entre nous savons que derrière toute illusion ou magie se trouve soit une grande dextérité, soit une ingénierie intelligente. Aujourd'hui, le premier n'est pas souvent lié au logiciel, mais le dernier est quelque chose que nous employons régulièrement dans nos produits. Dans cette logique, l’un des traits les plus éloquents d’un bon logiciel est qu’il parvienne à donner aux utilisateurs les moyens d’atteindre des objectifs complexes au moyen d’actions simples. Parfois, une action peut invoquer un code simple ou un algorithme à la pointe de la technologie. Dans tous les cas, si le résultat correspond à ce que l'utilisateur avait l'intention de faire, et que cela se soit passé sans effort, on a souvent l'impression que la magie s'est produite juste devant ses yeux.

Comment devenir illusionniste?

Dans UI Telerik pour WPF RadExpressionEditor permet aux utilisateurs de créer des expressions qui sont ensuite évaluées automatiquement. Qu'il s'agisse d'un simple contrôle si un produit est en stock ou d'une formule complexe, exigeante en chiffres, longue de trois miles – ils peuvent le faire. Jusqu'à présent, le moyen de créer une expression à partir d'une formule du monde réel consistait à utiliser les opérateurs disponibles dans RadExpressionEditor. Bien que toutes les formules se résument à des opérations simples, il faut parfois beaucoup d'efforts pour recréer un calcul complexe. D'autres fois, les fonctions sont si courantes dans un domaine donné que ne pas les avoir facilement disponibles et devoir les construire à partir de rien ressemble à l'âge de pierre.

Dans notre numéro R1 2019 nous avons répondu à cette nécessité. vous pouvez maintenant ajouter vos propres fonctions au lot. Et avouons-le, écrire des fonctions en C # est plus facile et bien plus puissant que de laisser les utilisateurs les écrire dans l’éditeur. En outre, vous gardez l'ingénierie intelligente derrière les rideaux et il ne reste plus qu'à vos utilisateurs de profiter de la magie.

Voyons un exemple d’ajout de deux fonctions à RadExpressionEditor:

Vous devez d’abord créer une classe qui hérite de ExpressionFunctionContext. À l'intérieur de cette classe est l'endroit où la magie se produit. Par souci de simplicité, nous allons réduire cette magie à une simple supercherie. Voici deux fonctions appelées OnePlus et TwoPlus qui conviennent à notre projet de loi:

public class CustomExpressionFunctionContext: ExpressionFunctionContext

{

[Description( "Augmentation de la valeur de 1" . )]]

public int OnePlus ( int entrée)

{

return ++ entrée;

}

[Description( "Augmentez la valeur de 2" )

public int TwoPlus ( int en entrée)

{

retour entrée + 2;

}

}

Ensuite, nous affectons une instance de cette classe à la propriété statique ExpressionFunctionContext.Context:

ExpressionFunctionContext.Context = new CustomExpressionFunctionContext ();

La La dernière étape consiste à créer une classe qui hérite de ExpressionEditorViewModel et à l'affecter à la propriété ViewModel de RadExpressionEditor. Dans la substitution de classe, ajoutez la méthode GetFunctionsItemModels et deux modèles d'élément décrivant les nouvelles fonctions:

public classe CustomExpressionEditorViewModel: ExpressionEditorViewModel

{

protégée override . ] GetFunctionsItemModels ()

{

List list = new List ( base .GetFunctionsItemModels ());

var autre = liste.Premier (x => x.Nom == "Autre" ) comme EditorCategoryModel;

other.Children.Add ( new FunctionEditorItemModel ( typeof (CustomExpressionFunctionContext) .GetMethod ( "OnePlus" BindingFlagag. autre nom));

other.Children.Add ( new FunctionEditorItemModel ( typeof (CustomExpressionFunctionContext) .GetMethod ( "TwoPlus" BindingFlagag. autre nom));

retour liste;

}

}

this .radExpressionEditor1.ViewModel = new CustomExpressionEditorViewModel ();

C'est tout, vous allez maintenant voir ces deux fonctions dans RadExpressionEditor:

 ] Fonctions personnalisées définies par l'utilisateur dans RadExpressionEditor

Parfois, vous trouvez quelque chose d'intéressant que vous commencez à creuser davantage. D'autres fois, il vous suffit d'aller au fond des choses par nécessité. Les fonctions, rarement, prennent directement vos modèles de vue en arguments. La plupart du temps, vous souhaiteriez qu’ils soient dissociés de votre logique d’entreprise et de la couche de données. Vous pouvez avoir une fonction qui calcule la taxe pour un véhicule en fonction de sa puissance, mais très probablement, cette fonction prendra la puissance sous forme de valeur numérique au lieu de l’objet véhicule complet. Pour ce cas et de nombreux autres, nous avons ajouté une exploration en détail dans les propriétés de vos modèles de vue.

Pour activer la fonctionnalité d'exploration, vous devez affecter à la propriété IsFieldsDrillDownEnabled de RadExpressionEditor la valeur true:

this .radExpressionEditor1.IsFieldsDrillDownEnabled = true ;

 Accéder au menu déroulant. de RadExpressionEditor

Encore des tours dans votre sac

Alors que nous répandions de la poussière magique sur RadExpressionEditor, nous avons décidé d’ajouter les fonctions de manipulation de cordes les plus populaires. Vos utilisateurs y auront désormais accès immédiatement.

 Fonctions de manipulation des chaînes dans RadExpressionEditor

Pour obtenir la liste complète des fonctions disponibles, consultez notre documentation .

Maintenant, vous le voyez…

Ce ne serait pas une vraie magie montrer si les choses n'ont pas mystérieusement disparu. Peut-être pas si mystérieusement, mais vous pouvez maintenant supprimer ou modifier la hiérarchie des fonctions à l'intérieur de RadExpressionEditor. Vous avez accès aux modèles de vues de l'éditeur d'expression et vous pouvez réorganiser les fonctions et les opérateurs à votre guise.

Supprimons toutes les catégories autres que les constantes:

Créez tout d'abord un modèle de vue personnalisé en héritant de ExpressionEditorViewModel et remplacez la méthode GenerateCategories dans laquelle nous renvoyons uniquement le modèle de vue de catégorie Constants:

public class [19659011] CustomExpressionEditorViewModel: ExpressionEditorViewModel

{

protégé remplacement IEnumerable GenerateCategories ()

{

pour Fisher (1965)] 19659015] .GenerateCategories ())

{

if (model.Name == "Constants" )

{

rendement retour modèle ;

}

}

}

}

 RadExpressionEditor avec certaines des catégories par défaut supprimées.

Vous pouvez voir plus d'options pour personnaliser les catégories et les opérateurs dans notre documentation . 19659129].

Prochaines étapes et retours

Il est temps que vous montiez sur scène et époustoufliez votre public. N’oubliez pas d’écrire et de partager votre expérience en jouant avec les nouvelles figures de RadExpressionEditor.

Si vous débutez dans l'interface utilisateur Telerik pour WPF, vous pouvez télécharger un essai gratuit aujourd'hui et tester les dernières fonctionnalités. Dites-nous ce que vous en pensez.


Les commentaires sont désactivés en mode aperçu.




Source link