Je dois transmettre le nom des contrôles à une méthode dans un objet de sécurité qui renvoie une valeur booléenne pour la propriété IsEnabled et une autre méthode qui renvoie sa visibilité (réduite, masquée ou visible). Ces deux doivent être vérifiés pour les autorisations.Liaison de boutons IsEnabled/Propriétés de visibilité à l'aide de x: Nom en tant que paramètre d'une méthode dans le code-behind
J'ai essayé d'utiliser un objet ObjectDataProvider mais tous les exemples montrent seulement l'entrée d'utilisateur d'une zone de texte pour les paramètres. J'ai spécifiquement besoin de passer un nom de contrôle à la méthode basée sur la propriété x: Name du bouton.
Quelle est la manière la plus simple et la plus efficace de gérer ce problème? Merci d'avance.
MISE À JOUR: Je suis en train d'utiliser un convertisseur et c'est la méthode de conversion, je suis venu avec:
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (values != null)
{
DataTable tblPermissions = (DataTable)values[0];
string sFunctionName = values[1].ToString();
DataRow[] rows = tblPermissions.Select("fun_name = '" + sFunctionName + "'");
if ((bool)rows[0]["fun_enable"])
return true;
else
return false;
}
return string.Empty;
}
Voici le XAML:
<Button.IsEnabled>
<MultiBinding Converter="{StaticResource IsFunctionEnabledConverter}">
<Binding ElementName="{StaticResource PermissionsTable}" />
<Binding ElementName="btnSave" Path="Name" />
</MultiBinding>
</Button.IsEnabled>
J'ai essayé d'utiliser un convertisseur, le problème que j'ai rencontré est que le convertisseur avait besoin que je passe dans l'objet de sécurité pour accéder aux permissions. J'ai créé un convertisseur à valeurs multiples qui utilise le nom du contrôle et la table pour les autorisations. Je reçois cette erreur lorsque j'essaie d'utiliser le convertisseur: "Impossible de lancer l'objet de type 'System.Data.DataTable 'to type' System.String '. " – jes9582
Cela ressemble à un problème avec le code de votre convertisseur en tirant les éléments des valeurs [] dans le mauvais ordre mais je ne peux pas dire exactement quoi sans voir le code –
J'ai posté un échantillon de code dans la question originale, laissez-moi savoir si vous voyez quelque chose de mal, mais ils devraient être dans le bon ordre Merci! – jes9582