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

WinRT Discussion :

GridView, Binding et frame [Débutant]


Sujet :

WinRT

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 86
    Points
    86
    Par défaut GridView, Binding et frame
    Bonjour à tous,

    Je tente de m'initier à la programmation WinRT en réalisant une application assez simple, mais qui déjà me pose problème...

    Le premier problème vient lorsque je tente de faire un binding d'un gridView. J'ai définit dans ma MainPage.xaml une frame :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Frame Margin="0,0,40,40" Grid.Row="2" Grid.Column="1" x:Name="frame" />
    Via un clic sur des textBlock, l'affichage de la frame est censé changer.

    Par défaut, je souhaite afficher dans ma frame, le contenu de la page Page1.xaml. Dans ma MainPage.xaml.cs, voici donc le code que je fais et qui semble marcher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        frame.Navigate(typeof(Page1));
    }
    Dans la Page1, je tente de binder un gridView. Voici alors le contenu du fichier Page1.xaml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <common:LayoutAwarePage
        x:Class="Projet.Page1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:Projet"
        xmlns:common="using:Projet.Common"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d">
     
        <GridView x:Name="Page1GridView" ItemsSource="{Binding Page1List}" ItemTemplate="{StaticResource Page1ItemTemplate}"
                Grid.Row="1" Grid.Column="1" SelectionMode="Single" IsItemClickEnabled="True" />
     
    </common:LayoutAwarePage>
    Le template est quant à lui défini dans le fichier App.xaml :

    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
    <DataTemplate x:Key="Page1ItemTemplate">
                    <StackPanel Orientation="Vertical">
                        <Image Source="{Binding Fond}" Width="200" Stretch="UniformToFill" Height="220" />
                        <Grid Height="40" Margin="0,-40,0,0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="*" />
                            </Grid.ColumnDefinitions>
                            <Border Grid.Column="1">
                                <Border.Background>
                                    <SolidColorBrush Color="Black" Opacity="0.7" />
                                </Border.Background>
                                <TextBlock Text="{Binding Nom}" FontWeight="Light" VerticalAlignment="Center" FontSize="28" Margin="10,0,10,0" />
                            </Border>
                        </Grid>
                    </StackPanel>
                </DataTemplate>
    Pour binder, voici ce que je fais dans mon fichier Page1.xaml.cs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DefaultViewModel["Page1List"] = DPage1List.GetPage1List();
    La méthode statique DPage1List.GetPage1List() me renvoie une List d'objet ayant 2 propriétés : "Nom" et "Fond".

    Le problème est que rien ne se passe, le binding ne semble pas se faire. Pourtant, la liste renvoyée n'est pas vide.

    Que manque-t-il à mon binding pour qu'il puisse se faire ?

    Merci d'avance pour votre aide !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 128
    Points : 86
    Points
    86
    Par défaut
    J'ai finalement réussi à binder en passant par le code C# et non le code XAML

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

Discussions similaires

  1. TextBox dans un Gridview bindé selon DropDownList
    Par yonel42 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 16/09/2014, 15h08
  2. [WPF][MVVM] GridView bindé un ReadOnlyCollection
    Par Monkey56 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 07/09/2010, 10h58
  3. comment le bind d'un gridview avec un arraylist
    Par charaf dans le forum ASP.NET
    Réponses: 2
    Dernier message: 20/02/2008, 17h17
  4. Réponses: 1
    Dernier message: 15/11/2007, 21h02
  5. GridView Test sur la Bind value
    Par kangaxx dans le forum ASP.NET
    Réponses: 3
    Dernier message: 30/10/2007, 15h31

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