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 :

Binding sur une propriété "IsChecked"


Sujet :

Windows Presentation Foundation

  1. #1
    Membre confirmé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    520
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 520
    Points : 543
    Points
    543
    Par défaut Binding sur une propriété "IsChecked"
    Bonjour tout le monde,

    Je voudrais n'autoriser des modification dans une colonne d'une datagrid que si une checkBox est cochée. J'ai donc lié la propriété AllowEdit à la propriété IsChecked de ma checkBox mais ça ne marche pas.
    J'ai fait une recherche sur le web, apparemment j'utilise la bonne méthode.
    Est-ce que quelqu'un aurait une idée?
    Voici un extrait de mon code:

    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
     <igDP:XamDataGrid AutoFit="True" VerticalAlignment="Top" HorizontalContentAlignment="Stretch" IsUndoEnabled="True" Name="DataGridProduit" OverridesDefaultStyle="False" VerticalContentAlignment="Stretch" MouseDoubleClick="DataGridProduit_MouseDoubleClick" Grid.RowSpan="3" Height="358">
                <igDP:XamDataGrid.FieldLayoutSettings>
                    <igDP:FieldLayoutSettings AutoFitMode="Always" AutoGenerateFields="False" FilterUIType="FilterRecord" HighlightAlternateRecords="True" />
                </igDP:XamDataGrid.FieldLayoutSettings>
                <igDP:XamDataGrid.FieldLayouts>
                    <igDP:FieldLayout>
                        <igDP:Field Label="Identifiant" Name="ID" Visibility="Collapsed">
                            <igDP:Field.Settings>
                              <igDP:FieldSettings    AllowEdit="{Binding ElementName=checkBox1, Path=IsChecked}" AutoSizeOptions="All" />
                            </igDP:Field.Settings>
                        </igDP:Field>
     </igDP:FieldLayout>
                </igDP:XamDataGrid.FieldLayouts>
     </igDP:XamDataGrid>
            <CheckBox Content="CheckBox" Grid.Row="2" Height="40" HorizontalAlignment="Left" Margin="0,0,0,-15" Name="checkBox1" VerticalAlignment="Bottom" />
    7 fois à terre, 8 fois debout

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 97
    Points : 115
    Points
    115
    Par défaut
    Je suppose que tu n'as aucune erreur concernant le binding dans la fenêtre output ?

    Je soupçonne que la grille Infragistics n'utilise le FieldLayout qu'à l'initialisation du template. Tu devrais essayer de modifier le FieldSettings directement depuis le code behind pour être fixé (tu lui assignes une propriété name, et tu le modifies dans l'event click d'un bouton).

  3. #3
    Membre confirmé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    520
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 520
    Points : 543
    Points
    543
    Par défaut
    Je n'ai effectivement aucune erreur. Par contre la checkbox est décochée par défaut au démarrage et le champ est pourtant "editable" alors qu'il ne devrait pas.
    7 fois à terre, 8 fois debout

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 97
    Points : 115
    Points
    115
    Par défaut
    Je viens de tester et j'ai le même problème. Par contre j'ai bien une erreur :
    System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=IsChecked; DataItem=null; target element is 'FieldSettings' (HashCode=32967578); target property is 'AllowEdit' (type 'Nullable`1')
    Après recherche, il semblerait que ce soit une limitation connue : http://forums.infragistics.com/forums/t/10907.aspx

    Je crains qu'il faille que tu t'y prennes autrement :s

    Sinon, tu as une solution détournée ici : http://blogs.infragistics.com/blogs/...-property.aspx

  5. #5
    Membre confirmé
    Avatar de Higgins
    Inscrit en
    Juillet 2002
    Messages
    520
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 520
    Points : 543
    Points
    543
    Par défaut
    Effectivement, ça à l'air lié directement à WPF.
    Je ne vois pas trop comment adapter leur solution sur la propriété "AllowEdit".
    Ce n'est pas grave, je regarderai ça plus tard.
    Merci
    7 fois à terre, 8 fois debout

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

Discussions similaires

  1. Binding sur une propriété
    Par Villard.patrick dans le forum Silverlight
    Réponses: 5
    Dernier message: 09/12/2009, 17h52
  2. binding sur une propriété shared (vb) static (c#) ?
    Par Pol63 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 24/06/2009, 15h44
  3. Binding sur une propriété avec paramètre
    Par FRED.G dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 17/11/2008, 18h38
  4. [Databinding] bind sur une propriété d'une collection
    Par herveb dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 11/12/2007, 10h35

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