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

Windows Presentation Foundation Discussion :

[3.0][WPF] Pb ObjectDataProvider


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 121
    Par défaut [3.0][WPF] Pb ObjectDataProvider
    Bonjour,
    voila j'ai un probleme avec ObjectDataProvider
    (j'utilise la derniere version de NET 3.0)

    Contacts ici correspond a une classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
     <Window.Resources>
        <ObjectDataProvider x:Key="contactsobject" ObjectType="{x:Type src:Contacts}"/>
      </Window.Resources>
    j'ai cette erreur pour ObjectType >>
    Erreur 1 Could not create an instance of type 'TypeExtension'. C:\Documents and Settings\romagny\Mes documents\Visual Studio 2005\Projects\_WPF\WPF_Sources_Donnees\WPF_Sources_Donnees\Window_ObjectDataProvider.xaml 7 60 WPF_Sources_Donnees


    j'ai remarqué que je rencontre exactement la même erreur avec les exemples MSDN qui son telechargeables

    faut il ajouter quelque chose du style dans la declaration Window ? >>
    xmlns:src="clr-namespace:WPF_Sources_Donnees.exe"

    mais la pareil j'ai une erreur que je rencontre d'ailleurs pareil dans toutes les applications utilisant ce type d'instruction >
    Erreur 1 Assembly '' was not found. The 'clr-namespace' URI refers to an assembly that is not referenced by the project. C:\Documents and Settings\romagny\Mes documents\Visual Studio 2005\Projects\_WPF\WPF_Sources_Donnees\WPF_Sources_Donnees\Window_ObjectDataProvider.xaml 4 19 WPF_Sources_Donnees



    Mon but est pourtant simple, faire du binding sur une collection d'objets ...

    une idée comment faire concretement et que cela marche avec ObjectDataProvider ?

    merci ++

  2. #2
    Membre émérite
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Par défaut
    Je crois qu'on a le même problème ... En tout cas pour la dernière erreur...
    http://www.developpez.net/forums/sho...d.php?t=248985

    Par contre, je pense pouvoir te rassurer tout de suite quant à l'utilisation de ObjectDataProvider et aux possiblités de Binding. Ca a l'air de bien fonctionner. J'ai pu le vérifier en compilant et exécutant mon code sous Blend.

    Donc je pense à un souci avec l'extension de VS pour WPF ... Tenons-nous au courant.

  3. #3
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Par défaut
    Citation Envoyé par DonJR
    faut il ajouter quelque chose du style dans la declaration Window ? >>
    xmlns:src="clr-namespace:WPF_Sources_Donnees.exe"
    Oui tu dois définir le namespace dans lequel se trouve la classe.

  4. #4
    Membre émérite
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Par défaut
    Je précise que dans mon cas j'ai bien spécifié le NameSpace et l'assembly mais rien à faire : le code XAML fonctionne sous blend mais pas sous VS ...

    EDIT : j'ai rechargé les samples d'origine en VB et C# du SDK : "CollectionViewSource".

    En fait ils compilent et s'exécutent sous VS. Par contre la déclaration d'une instance de classe comme ressource ainsique la déclaration du namespace sont soulignées comme avertissement.
    Parfois ça l'est comme erreur et là la compilation passe pas...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 121
    Par défaut
    Oui FRED.G
    j'ai aussi essayé xmlns:src="clr-namespace:WPF_Sources_Donnees.exe"
    ou xmlns:src="clr-namespace:WPF_Sources_Donnees"
    mais pareil toujours la même erreur

    merci pour l'aide jab

    euu au fait loooOl le pseudo au passage FRED.G

  6. #6
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Par défaut
    DonJR es-tu sur que tu ne confond pas le nom de l'assembly et le nom du namespace ("clr-namespace:WPF_Sources_Donnees.exe" )

    FREAD.G, dès que j'ai fini de réinstaller mon PC avec tout ce qu'il faut, je fais le test avec l'exemple mais je n'avais pas eu ce problème avec les betas.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 121
    Par défaut
    Jab non en fait j'avais ajouté le .exe en desespoir de cause histoire de tout essayer

    Est ce que tu arrives a utiliser ObjectDataProvider et que ca marche (avec la derniere version du Framework .NET 3.0)
    j'ai lu sur blogs et MSDN qu'apparemment il y avait eu des changements au niveau justement de ObjectDataProvider, en plus je me demandes si l'aide MSDN dans Visual Studio est bien toujours a jour

    pourtant le code est relativement simple
    1 - Dans la declaration Window
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    
    <Window x:Class="WPF_Sources_Donnees.Window_ObjectDataProvider"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:src="clr-namespace:WPF_Sources_Donnees"
        Title="WPF_Sources_Donnees" Height="600" Width="800"
        >
    2 - On definit ObjectDataProvider dans les resource, ici Contacts est une classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <Window.Resources>
        <ObjectDataProvider x:Key="contactsobject" ObjectType="{x:Type src:Contacts}"/>
      </Window.Resources>
    3 - On met en place le Binding
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <ListView Width="464"  Height="208" Canvas.Left="160" Canvas.Top="200" IsSynchronizedWithCurrentItem="True" DataContext="{Binding Source={StaticResource contactsobject}}">
            <ListView.View>
              <GridView>
                <GridViewColumn Width="150"  Header="Code contact" DisplayMemberBinding="{Binding Path=code_contact}"/>
                <GridViewColumn Width="150"  Header="Nom contact" DisplayMemberBinding="{Binding Path=nom_contact}"/>
                <GridViewColumn Width="150"  Header="Prénom contact" DisplayMemberBinding="{Binding Path=prenom_contact}"/>
              </GridView>
            </ListView.View>
          </ListView>
    mais comme ca cloche des mon namespace ...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 121
    Par défaut
    Bonsoir

    bon a yé j'y suis arrivé ...
    enfin j'ai utilisé Blend !! et en bidouillant un peu (en utilisant en plus la source de données que Blend permet de générer automatiquement )
    >>
    clic droit sur le control (ici une ListView) > Bind Itemssource to data... > CLR Object Data > je selectionne la classe contenant ma list generique de contacts puis cette list dans la liste de droite ds Blend > Finish

    (bon j'ai une magnifique messagebox d'erreur a ouverture de l'assistant quand je clic pour ajouter une source object comme quoi il ne trouve pas differents fichiers ou assemblys lol enfin j'ai pas trop regarder)
    ... il me genere la moitié du code et c'est alors presque gagner


    je mets le code qui pourra peut etre etre utile ou au moins fournir des pistes
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    
    <Window x:Class="WPF_Sources_Donnees.Window_ObjectDataProvider"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="WPF_Sources_Donnees" Height="600" Width="800"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2006" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
        xmlns:WPF_Sources_Donnees="clr-namespace:WPF_Sources_Donnees"    >
    	<Window.Resources>
    		<ObjectDataProvider ObjectType="{x:Type WPF_Sources_Donnees:Contacts}" x:Key="ContactsDS"/>
    	</Window.Resources>    
    
      <!-- CONTENEUR PRINCIPAL DE LA WINDOW -->
      <DockPanel>
        <!-- LE MENU (ON A UTILISER LE CONTENEUR DOCKPANEL POUR POUVOIR "DOCKER" CE MENU EN HAUT DE LA FORM -->
        <Menu Width="792" Height="20" DockPanel.Dock="Top">
          <MenuItem Header="Fichier">
            <Separator/>
            <MenuItem Name="mnuFichierQuitter" Header="Quitter" />
          </MenuItem>
        </Menu>
    
        <!-- CANVAS > CONTENEUR IMBRIQUE DANS LE CONTENEUR PRINCIPAL (DOCKPANEL ICI)-->
        <Canvas>
          <!-- SERT JUSTE A DEFINIR LE FOND DE LA WINDOW (ICI DEGADE JAUNE VERS BLANC) -->
          <Canvas.Background>
            <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
              <GradientStop Color="#FFD8CE64" Offset="0"/>
              <GradientStop Color="#FFFFFFFF" Offset="1"/>
            </LinearGradientBrush>
          </Canvas.Background>
    
          <!-- LE LABEL QUI SERT JUSTE A INFORMER DU TYPE DE SOURCE DE DONNEE DE LA WINDOW  -->
          <Label Width="200" Height="128" FontSize="50" Content="Objet" Canvas.Left="50" Canvas.Top="50">
            <Label.Foreground>
              <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
                <GradientStop Color="#FF132494" Offset="0"/>
                <GradientStop Color="#FF30D4DA" Offset="1"/>
              </LinearGradientBrush>
            </Label.Foreground>
          </Label>
    
     
          <!-- ON DEFINIT POUR CHAQUE GRIDVIEWCOLUMN ELEMENT QUI SERA LISTER -->   
      	<ListView Width="336" Height="176" ItemsSource="{Binding Path=colContacts, Mode=OneWay, Source={StaticResource ContactsDS}}" IsSynchronizedWithCurrentItem="True" Canvas.Left="240" Canvas.Top="220">
      		<ListView.View>
      			<GridView>
      			 	<GridViewColumn Header="Code contact" DisplayMemberBinding="{Binding Path=code_contact}"/>
      				<GridViewColumn Header="Nom contact" DisplayMemberBinding="{Binding Path=nom_contact}"/>
      			 	<GridViewColumn Header="Prénom contact" DisplayMemberBinding="{Binding Path=prenom_contact}"/>
      			</GridView>
      		</ListView.View>
      	</ListView>  	</Canvas>
      </DockPanel>
    </Window>
    Par contre dans Visual studio toujours pareil xmlns:WPF_Sources_Donnees="clr-namespace:WPF_Sources_Donnees" est souligné !!

    bon lol c'est bon que c'est une version de test, mais si il faut passer par Blend pour coder ... un comble

    Ou alors cela viendrait t'il d'Orcas qui n'est pas a jour ou qui fait des gourdes par rapport a extension de Nov 2006 ?

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/09/2013, 16h15
  2. Documentation WPF ?
    Par NeoMan dans le forum Windows
    Réponses: 2
    Dernier message: 25/03/2006, 00h01

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