bonjour,
j'ai une classe test static avec une variable static, elle est de type booleenne. Comment puis je faire pour pour binder une checkbox à cette variable ?
Merci
bonjour,
j'ai une classe test static avec une variable static, elle est de type booleenne. Comment puis je faire pour pour binder une checkbox à cette variable ?
Merci
Salut,
J'ai envie de dire comme un Binding normal soit un truc comme ça :
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Binding bd = new Binding(); bd.Source = maClassStatic.monChampStatic; maCheckBox.SetBinding(CheckBox.IsCheckedProperty, bd);
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 static public class maClassStatic { static public bool monChampStatic { get; set; } }
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part <CheckBox IsChecked="{Binding Source={x:Static leNamespace:laClasse.leChamp}}">...
pour info frédéric hamel propose un memo sur le binding (Google > Data Binding Quick Reference)
Attention, avec ce qui est indiqué dans le mémo, tu ne fais pas de binding... tu récupères la valeur au moment de l'initialisation du contrôle, mais si elle change par la suite, le contrôle ne se mettra pas à jour
evidement donc la solution c'est de mettre un constructeur prive a la classe
de coller un static dedans style
static readonly maclass default = new maclasse();
et de faire le binding sur le static default qui permet d'atteindre la classe construite
a l'ancienne quoi !!!!
tout a fait la classe serait un singleton et dans ce cas je n'ai pas d'utilite.
c'est vrai ceci etant quand tu creuse un peut .net 3.5 tu vois qu'il ont bcp utilise le principe pour cela
j'ai tenté de faire le test avec un membre static manifestement ca doit devnir du INotifyPropertyChanged qu'on peut pas mettre en static (ben normal quoi)
bon ben merci d'avoir chercher avec moi, je vais chercher une autre solution.
Je déterre ce message pour savoir si quelqu'un aurait trouver quelque chose depuis.
J'ai un problème similaire :
Je veux binder la propriété IsChecked d'un MenuItem sur une propriété statique, avec un mode TwoWay.
Betement, j'écris ca :
Mais à l'éxecution, il me sort une exception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part IsCheckable="True" IsChecked="{Binding Source={x:Static local:MaClasse.MaPropriete}}"/>
La valeur 'System.Windows.Data.Binding' ne peut pas être attribuée à la propriété 'IsChecked' de l'objet 'System.Windows.Controls.MenuItem'. La liaison bidirectionnelle nécessite Path ou XPath.
Est ce qu'il y a une autre solution que de passer par un singleton ?
Je crois qu'une fois j'avais eu à faire ça, et j'avais trouvé une solution un peu crade, mais qui marchait : mettre comme source du binding une instance bidon de la classe, et l'utiliser comme source du binding :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <Window.Resources> <local:MaClasse x:Key="maClasse" /> </Window.Resources> ... <MenuItem IsChecked="{Binding Path=MaPropriete, Source={StaticResource maClasse}}" ...
Je suis preneur ! Effectivement, j'aurai espéré mieux...
mais à choisir entre coder la synchro à la main ou utiliser le binding avec une instance bidon, la flemme..euh non... ma volonté d'avoir un code épuré me pousse à choisir la seconde solution!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager