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 :

CheckBox Binding MvvM Caliburn [MVVM]


Sujet :

WinRT

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2012
    Messages : 17
    Points : 18
    Points
    18
    Par défaut CheckBox Binding MvvM Caliburn
    Bonjour à vous

    Je viens vers vous pour un problème que je n'arrive pas résoudre mais je ne comprend pas vraiment aussi.
    Je réalise une application Windows 8 en c# basé sur une architecture MVVM avec le Framework Caliburn.Micro

    Mon problème est simple : Faire un Binding sur une CheckBox ( je sais le faire mais pour mon cas cela ne marche pas )

    J'utilise un FlipView avec un DataTemplate a l'intérieur
    une ListView qui a lui aussi un DataTemplate qui contient mais CheckBox.



    Je n'arrive pas a atteindre mon binding de la propriété Ischeck de ma CheckBox.
    Ma premier hypothèse est que j'utilise un datatemple dans un datatemple et qu'il n'arrive pas a trouve la source ?

    Bon voici un bout de code pour y voir mieux.

    ps : Un trie a était réaliser pour une meilleur compréhension du code.

    VIEW
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    <Page
        x:Class="eLOG.Views.FicheTestView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="using:eLOG.Views"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:cal="http://www.caliburnproject.org"
     
        mc:Ignorable="d" Background="Black">
     
        <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" >
     
                <TextBlock  Text="{Binding Title}"/>
                <Button Style="{StaticResource NavigationBackButtonNormalStyle}" Margin="39,59,39,0"/>
            </Grid>
     
            <FlipView ItemsSource="{Binding TitreFiche}">
     
                <FlipView.ItemTemplate>
     
                    <DataTemplate>
                        <Grid  Width="1247" HorizontalAlignment="Left" VerticalAlignment="Top">
                            <Grid>
                                <ListView IsItemClickEnabled="True"
                                               ItemsSource="{Binding FicheTest}" 
                                               Grid.RowSpan="2">
     
                                    <ListView.ItemTemplate>
                                        <DataTemplate>
                                            <Grid >
                                                <Grid.RowDefinitions>
                                                    <RowDefinition Height="76*"/>
                                                    <RowDefinition Height="73*"/>
                                                    <RowDefinition Height="2*"/>
                                                </Grid.RowDefinitions>
                                                <Grid.ColumnDefinitions>
                                                    <ColumnDefinition Width="132*"/>
                                                    <ColumnDefinition Width="644*"/>
                                                    <ColumnDefinition Width="27*"/>
                                                    <ColumnDefinition Width="289*"/>
                                                </Grid.ColumnDefinitions>
                                                <TextBox BorderBrush="Transparent" Foreground="White" Background="Transparent" Text="{Binding ActionFT}" Grid.Column="1" TextWrapping="Wrap" Margin="101,-5,-2,-7" FontFamily="Segoe UI Light" FontSize="20" />
                                                <TextBox BorderBrush="Transparent" Foreground="White" Background="Transparent" Text="{Binding Attendu}" Grid.Column="1" TextWrapping="Wrap" FontFamily="Segoe UI Light" Margin="154,5,0,1" FontSize="20" Grid.Row="1"/>
                                                <Line Grid.Column="1" Grid.Row="2"  Canvas.ZIndex="1" StrokeThickness="5" Stroke="White" X1="1000" Margin="106,2,34,-1" VerticalAlignment="Top" Height="1"  />
                                                <Grid x:Name="azerty" Grid.Column="3" HorizontalAlignment="Left" Height="44" Margin="139,32,-37,0" VerticalAlignment="Top" Width="177">
                                                    <Grid.ColumnDefinitions>
                                                        <ColumnDefinition Width="Auto"/>
                                                        <ColumnDefinition Width="Auto"/>
                                                        <ColumnDefinition Width="Auto"/>
                                                        <ColumnDefinition Width="Auto"/>
                                                        <ColumnDefinition Width="Auto"/>
                                                    </Grid.ColumnDefinitions>
                                                    <CheckBox IsChecked="{Binding CheckBoxGreen, Mode=TwoWay}"  Visibility="{Binding VisibilityCheckBoxGreen}" Style="{StaticResource CheckBoxStyleGreen}"/>
                                                </Grid>
                                            </Grid>
                                        </DataTemplate>
                                    </ListView.ItemTemplate>
                                </ListView>
                            </Grid>
                        </Grid>
                    </DataTemplate>
                </FlipView.ItemTemplate>
     
     
            </FlipView>
     
        </Grid>
    </Page>

    ViewModel

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    using Caliburn.Micro;
    using eLOG.Data;
    using eLOG.DataModel;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Windows.UI.Xaml.Controls;
     
     
     
    namespace eLOG.ViewModels
    {
     
        public class FicheTestViewModel : ViewModelBase
        {
            private readonly INavigationService navigationService;
     
     
            private List<FicheTest> FicheTest;
     
            private FakeBDD BDD;
            private int i;
           private int y ;
     
            public FicheTestViewModel(INavigationService navigationService)
                : base(navigationService)
            {
                this.navigationService = navigationService;
     
                BDD = new FakeBDD();
                FicheTest = new List<FicheTest>();
     
                 FicheTest =  BDD.creatObject();
                _title = "Trololololo";
     
     
     
                var FTByTitre = FicheTest.GroupBy(x => x.Titre)
                 .Select(x => new TitreFicheTest { Titre = x.Key, FicheTest = x.ToList() });
     
                _TitreFiche = FTByTitre.ToList();
     
            }
            protected override void OnInitialize()
            {
                base.OnInitialize();
            }
            private bool _CheckBoxGreen;
            public bool CheckBoxGreen
            {
                get { return _CheckBoxGreen; }
                set
                {
                    _CheckBoxGreen = value;
     
                    NotifyOfPropertyChange(() => CheckBoxGreen);
                }
            }
     
        private List<TitreFicheTest> _TitreFiche;
            public List<TitreFicheTest> TitreFiche
            {
                get { return _TitreFiche; }
                set
                {
                    _TitreFiche = value;
     
                    NotifyOfPropertyChange(() => TitreFiche);
                }
            }
     
        }
    }
    [/CODE]

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    novembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2012
    Messages : 17
    Points : 18
    Points
    18
    Par défaut
    Voici mon code utilisé :

    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
     
       private IEnumerable<UserControl> AllUserControl;
            public IEnumerable<UserControl> GetUserControl()
            {
     
                if (FlipView.SelectedItem == null)
                { }
                else
                {
                    var _Container = FlipView.ItemContainerGenerator
                        .ContainerFromItem(FlipView.SelectedItem);
                    var _Children = AllChildren(_Container);
                    AllTextBlock = _Children.OfType<UserControl>();// cette ligne spcécifie quelle controlleur on veut
                }
                return AllUserControl;
            }
     
     
     
     
            //liste tout les controlleur charger dans le flipview.
            public List<Control> AllChildren(DependencyObject parent)
            {
                try
                {
                    var _List = new List<Control>();
                    if (parent == null)
                    { return _List; }
                    else
                    {
     
     
                        for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
                        {
     
                            var _Child = VisualTreeHelper.GetChild(parent, i);
                            if (_Child is Control)
     
                                _List.Add(_Child as Control);
                            _List.AddRange(AllChildren(_Child));
                        }
     
                        return _List;
                    }
                }
                catch (Exception)
                {
     
                    throw;
                }
            }

    On appellera la GetUserControl dans une autre méthode pour récupérés les contrôles pour ensuite s'amuser a manipuler les contrôles.
    Si problème ou question, fait moi signe.

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

Discussions similaires

  1. Binding MVVM IsEnabled
    Par gridin dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 04/01/2011, 10h43
  2. Binding / MVVM : mise à jour
    Par gridin dans le forum Windows Presentation Foundation
    Réponses: 13
    Dernier message: 30/12/2010, 10h10
  3. problème Checkbox "Binding"
    Par saradion dans le forum ASP.NET
    Réponses: 0
    Dernier message: 24/11/2010, 17h55
  4. Menu dynamique, Binding, MvvM
    Par g0up1l dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 24/07/2009, 10h58
  5. [MVVM] Caliburn, Onyx, WPF Composite App
    Par freddyboy dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 02/07/2009, 16h47

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