L'informatique c'est pas de la sorcellerie hein
Code : Sélectionner tout - Visualiser dans une fenêtre à part Text="{Binding test99, Source={StaticResource xxx}}
L'informatique c'est pas de la sorcellerie hein
Code : Sélectionner tout - Visualiser dans une fenêtre à part Text="{Binding test99, Source={StaticResource xxx}}
Bonsoir Harry Potter (alias Skyounet)
Comme je disais, c'est presque bien...
me retourne 333 alors qu'il devrait me retourner 777
Code : Sélectionner tout - Visualiser dans une fenêtre à part Text="{Binding test99, Source={StaticResource xxx}}
Il faut que tu implémentes INotifyPropertyChanged sur ta classe clsGlobal.
Ensuite sur le set de test99 il faut que tu lances l'évènement que tu dois implémenter à cause de l'interface en passant en paramètre de PropertyChangedEventArgs le nom de ta propriété (cad test99).
Ok je me rend...
Ca dépasse le niveau de mes compétences, je crois que je vais continuer à utiliser mon textBox caché par un zIndex à -1 comme expliqué en début de post, pas très élégant mais néanmoins efficace...
Merci en tous cas pour tous vos efforts et peut-être que dans une prochaine version il existera un moyen plus simple de passer une variable dans le XAML.
Ben non tu as terminé
Je te mets le code C#.
INotifyPropertyChanged est la BASE de Silverlight, si tu comprends pas ça tu peux arrêter de suite...
Ca sert à dire à l'interface que Test99 a été modifiée et qu'il faut qu'il mette à jour la valeur que tu vois.
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 public class ClsGlobal : System.ComponentModel.INotifyPropertyChanged { private int test99; public int Test99 { get { return test99; } set { test99 = 99; RaiseNotifyPropertyChanged("Test99"); } } #region INotifyPropertyChanged Members private void RaiseNotifyPropertyChanged(string propertyName) { if (PropertyChanged != null) PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; #endregion }
Heureusement que tu m'as remotivé car effectivement tu y étais presque, si près du but ça aurait été bête... Voici le code VB pour ceux que ça intéresse.
Le code dans App.xaml.vb et maPage.xaml.vb reste inchangé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Public Class clsGlobal Implements System.ComponentModel.INotifyPropertyChanged Public Property test99() As Integer Get Return _test99 End Get Set(ByVal value As Integer) _test99 = value RaiseEvent PropertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs("test99")) End Set End Property Public Event PropertyChanged(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged End Class
Merci beaucoup pour votre patience à tous et pour ta persévérence Skyounet.
Voldemor a encore frapé !
dans maPage.xaml le 777 s'affiche bien dans:
par contre quand je fais ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part <TextBox x:Name="test" Text="{Binding test99, Source={StaticResource xxx}}" />
j'ai l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part <riadata:ControlParameter ParameterName="parRevId" Value="{Binding test99, Source={StaticResource xxx}}"/>
alors que :at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at myAppli.Contact.InitializeComponent()
at myAppli.Contact..ctor()
ne provoque pas d'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <riadata:ControlParameter ParameterName="parRevId" Value="777"/>
Partager