none
SQL Server Compact et Listbox RRS feed

  • Question

  • Bonjour,

    J'ai créé une base de données SQL Server Compact, donc un fichier .sdf. A partir de cette base j'ai créé un fichier edmx (Entity framework).

    Jusque là tout va bien.

    Par contre lorsque je souhaite que mes données s'affichent

    System.Windows.Data Error: 40 : BindingExpression path error: 'LastName' property not found on 'object' ''Char' (HashCode=5177423)'. BindingExpression:Path=LastName; DataItem='Char' (HashCode=5177423); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')

    ce message apparait.

    Voici le code que j'utilise pour déclencher cet évènement :

    Imports WpfEfDAL
    Imports System.Data.SqlServerCe
    
    Class MainWindow
    
        Dim db As New OMSEntities
    
        Private Sub Window_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
    
            Dim result = From c In db.Customers _
                         Order By c.LastName, c.FirstName _
                         Select c
    
            Me.ListBox1.ItemsSource = result.ToString()
            Me.ListBox1.DisplayMemberPath = "LastName"
    
        End Sub
    End Class
    Peut-être vez-vous une idée de pourquoi rien ne s'affiche dans la listbox?
    Merci d'avance de votre aide. Cordialement.

    dimanche 12 mai 2013 11:22

Réponses

  • Bonjour,

    voici comment le problème a été reglé :

    Le code XAML :

    <Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
        <Window.Resources>
            <CollectionViewSource x:Key="CustomerSource" />
        </Window.Resources>
        <Grid>
            <ListBox Name="ListBox1" ItemsSource="{Binding Source={StaticResource CustomerSource}}">
                <ItemsControl.ItemTemplate>            
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal" >
                            <TextBlock Text="{Binding Path=LastName}"/>
                            <TextBlock Text=", "/>
                            <TextBlock Text="{Binding Path=FirstName}" />
                        </StackPanel>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>             
            </ListBox>
        </Grid>
    </Window>

    Le code BEHIND

    Imports WpfEfDAL
    Imports System.Data.SqlServerCe
    Class MainWindow
        Dim db As New OMSEntities
        Private Sub Window_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
            Dim result = From c In db.Customers _
                         Select c
            Dim CustomerSource = CType(Me.Resources("CustomerSource"), CollectionViewSource)
            CustomerSource.Source = result.ToList()
        End Sub
    End Class

    Avec cette solution, le programme se déroule comme souhaité, sans aucun message d'erreur à l'exécution.

    Je vous remercie de votre aide, à très bientôt.

    Cordialement.

    • Marqué comme réponse Kensi22 vendredi 17 mai 2013 08:51
    vendredi 17 mai 2013 08:51

Toutes les réponses