Comment passer plusieurs convertisseur paramètre générique Enum Boolean Convertisseur
J'ai été par le biais de ce Comment lier des composants radiobutton à un enum?
et a accepté de répondre à cette question contient de l'utilisation de générique Enum Boolean convertisseur.
mon problème est que je vais avoir deux boutons radio et un enum
public Enum LinkType
{
A,
B,
C,
D,
E,
F
}
Dans le ViewModel j'ai une propriété Appelée
public LinkType MyLinktype
{
get;set;
}
mon premier bouton radio peut être vrai si la propriété de l'enum dans le ViewModel est avoir de la valeur (A,C,E et le deuxième bouton radio peut être vrai si la propriété de l'enum dans le ViewModel est d'avoir de la valeur parmi les.
B,D,F
Alors, Comment puis-je passer plusieurs valeurs dans le convertisseur paramètre générique EnumTo Boolean Convertisseur qui est le suivant
public class EnumBooleanConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string parameterString = parameter as string;
if (parameterString == null)
return DependencyProperty.UnsetValue;
if (Enum.IsDefined(value.GetType(), value) == false)
return DependencyProperty.UnsetValue;
object parameterValue = Enum.Parse(value.GetType(), parameterString);
return parameterValue.Equals(value);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string parameterString = parameter as string;
if (parameterString == null)
return DependencyProperty.UnsetValue;
return Enum.Parse(targetType, parameterString);
}
Ainsi que des changements que j'ai à faire dans le convertisseur si je veux quelque chose de ce genre dans le code XAML
<RadioButton IsChecked="{Binding Path=MyLinktype, Converter={StaticResource enumBooleanConverter}, ConverterParameter=A,C,F}">Odd LinkType</RadioButton>
<RadioButton IsChecked="{Binding Path=Mylinktype, Converter={StaticResource enumBooleanConverter}, ConverterParameter=B,D,E}">Even Link Type</RadioButton>
OriginalL'auteur Yogesh Joshi | 2013-09-18
Vous devez vous connecter pour publier un commentaire.
Vous pouvez définir un tableau dans le code xaml:
Et de le passer en paramètre
Vous devez réparer votre convertisseur tho, afin de gérer correctement tableau en tant que convertisseur de paramètre.
OriginalL'auteur Nikita B
Tout d'abord, je pense que les "Drapeaux" attribut est la clé pour résoudre le problème:
Et puis, je mets en œuvre le convertisseur comme ceci:
Et, en Xaml, vous pouvez l'utiliser comme ceci:
Aussi comme ça:
si vous ne faites pas de "Drapeaux" attribut, vous ne pouvez pas transférer le résultat comme "A|B|D" de retour à votre modèle.
Enfin, je devrais m'excuser pour mon mauvais anglais. ^-^
OriginalL'auteur lyphoon
Vous pouvez utiliser la suite enum boolean convertisseur
}
et en xaml, vous pouvez l'utiliser comme
où enumBooleanConverter est au-dessus de convertisseur
A,C et F sont les valeurs de l'enum. EnumToBooleanConverter relie les points entre xaml et les valeurs de l'enum
C'est juste que j'ai essayé quelque chose de similaire, mais a été d'avoir des erreurs dans le code xaml. eh bien, j'ai fait quelque chose de mal 🙂
OriginalL'auteur Mohd Ahmed