IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Erreur "converter ne prend pas en charge les valeurs de type system.windows.nullableboolconverter"


Sujet :

VB.NET

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 46
    Par défaut Erreur "converter ne prend pas en charge les valeurs de type system.windows.nullableboolconverter"
    Hello.

    Voici mon soucis : j'ai une application vb/wpf (je sais, c# c'est mieux), et une classe classique "personne" qui implémente INotifyPropertyChanged.
    Une des propriété est un enum public qui comporte 3 paramètres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    enum typepersonne
       homme
       femme
       societe
    end enum
    sur un usercontrol j'ai donc 3 checkbox pour lesquels je n'arrive pas à binder la propriété de type typepersonne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        <ValueConversion(GetType(typepersonne), GetType(Boolean))> _
        Public Class sexConvert : Implements IValueConverter
            Public Function Convert(ByVal value As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.Convert
     
            End Function
     
            Public Function ConvertBack(ByVal value As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements System.Windows.Data.IValueConverter.ConvertBack
     
            End Function
     
        End Class
    et dans le xaml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                <RadioButton IsChecked="{Binding Path=typepersonne , Mode=TwoWay, Converter={StaticResource sexConvert}, ConverterParameter=h}" Height="18" Margin="69,32,0,0" HorizontalAlignment="Left" Name="rdHomme" Width="75" VerticalAlignment="Top">Homme</RadioButton>
                <RadioButton IsChecked="{Binding Path=typepersonne , Mode=TwoWay, Converter={StaticResource sexConvert}, ConverterParameter=m}" Height="18" Margin="150,32,0,0" Name="rdFemme" VerticalAlignment="Top" HorizontalAlignment="Left" Width="79">Femme</RadioButton>
                <RadioButton IsChecked="{Binding Path=typepersonne , Mode=TwoWay, Converter={StaticResource sexConvert}, ConverterParameter=f}" Height="18" Margin="235,32,0,0" Name="rdSociete" VerticalAlignment="Top" HorizontalAlignment="Left" Width="93">Société</RadioButton>
    je ne sais pas comment déclarer mon convertisseur dans :
    <UserControl.Resources>

    </UserControl.Resources>


    message d'erreur :
    converter ne prend pas en charge les valeurs de type system.windows.nullableboolconverter

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 193
    Par défaut
    Citation Envoyé par cyrianox Voir le message
    j'ai une application vb/wpf (je sais, c# c'est mieux)
    c'est différent, pas forcément mieux ...


    pour en revenir à ton soucis, dans le binding, le converter que tu dois passer est une instance de converter, pas juste le nom de la classe
    tu peux faire une instance en xaml, et la mettre en ressources
    ensuite tu peux donc dire qu'en converter tu veux utilisée telle ressource

    à mettre au début avec les autre xmlns :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns:converters="clr-namespace:Converters"
    le nom local que tu veux pour ce namespace = le namespace réel
    il faut donc que ta classes converter soit dans un namespace (wpf est vraiment brouillon encore, j'espère que vs 2010 sera moins chiant)

    ensuite déclarer la ressource
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <converters:nom_du_type x:Key="nom de la ressources voulue"></converters:nom_du_type>

    puis utiliser le convertisseur dans le binding
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Converter={StaticResource nom de la ressources voulue}
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 46
    Par défaut toujours pas réussi
    Merci d'avoir répondu. Il y a un truc que je dois pas avoir capté, parce que après une bonne heure de recherche de "syntaxe", je n'y arrive toujours pas.
    J'ai essayé en mettant la classe dans un namespace, le converter dans un namespace, le converter dans la classe, toujours la même erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <UserControl x:Class="fichePersonne"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="611" Height="340"
        xmlns:converters="clr-namespace:Converters">
     
        <UserControl.Resources>
            <Converters:sexConvert x:Key="syx" />
        </UserControl.Resources>
     
    <Grid>
                <RadioButton IsChecked="{Binding Path=sexe, Mode=TwoWay, Converter={StaticResource syx}, ConverterParameter=h}" Height="18" Margin="69,32,0,0" HorizontalAlignment="Left" Name="rdHomme" Width="75" VerticalAlignment="Top">Homme</RadioButton>
                <RadioButton IsChecked="{Binding Path=sexe, Mode=TwoWay, Converter={StaticResource syx}, ConverterParameter=m}" Height="18" Margin="150,32,0,0" Name="rdFemme" VerticalAlignment="Top" HorizontalAlignment="Left" Width="79">Femme</RadioButton>
                <RadioButton IsChecked="{Binding Path=sexe, Mode=TwoWay, Converter={StaticResource syx}, ConverterParameter=f}" Height="18" Margin="235,32,0,0" Name="rdSociete" VerticalAlignment="Top" HorizontalAlignment="Left" Width="93">Société</RadioButton>
    </Grid>
    </UserControl>

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 193
    Par défaut
    <Converters:sexConvert x:Key="syx" />

    or tu as défini ta namespace local en minuscule

    xmlns:converters=

    après je ne connais pas la syntaxe de ConverterParameter ...


    m'enfin le problème vient peut etre de ta classe plutot
    moi j'ai pas d'attribut au dessus de mes converters ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 46
    Par défaut arg ! sacré xaml !
    Citation Envoyé par Pol63 Voir le message
    <Converters:sexConvert x:Key="syx" />

    or tu as défini ta namespace local en minuscule

    xmlns:converters=

    après je ne connais pas la syntaxe de ConverterParameter ...


    m'enfin le problème vient peut etre de ta classe plutot
    moi j'ai pas d'attribut au dessus de mes converters ...
    merci pour ton aide, je n'y suis pas arrivé malgré tout.
    Faute de temps, je laisse tomber pour ce coup-ci, je vais utiliser une solution moins "propre".
    J'ai cherché pendant un sacré bout de temps sur le net, pas d'exemple concret d'implémentation de la classe + xaml + xaml.vb

Discussions similaires

  1. Réponses: 7
    Dernier message: 30/05/2011, 10h10
  2. l'exécutable ne prend pas en charge les images?
    Par fadsys dans le forum PureBasic
    Réponses: 1
    Dernier message: 11/11/2009, 19h21
  3. Réponses: 5
    Dernier message: 15/07/2009, 14h02
  4. Réponses: 8
    Dernier message: 20/06/2006, 16h54
  5. Réponses: 27
    Dernier message: 19/10/2005, 10h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo