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 :

c# binding dynamique?


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 433
    Par défaut c# binding dynamique?
    salut,

    je viens d'integrer le mode du WPF,et j'aurai besoin d'aide.

    j'essaye de creer des controls et de faire un binding dynamique sur une proprieté de ma viewmodel.cs

    mon code c#
    Code C# : 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
    public partial class UserControl1 : UserControl
              {
                  public UserControl1()
    	  {
    	    InitializeComponent();
    	    this.DataContext = new MyViewModel();
    	    this.Loaded += new RoutedEventHandle(UserControl_Loaded);
    	   }
     
    	private void UserControl_Loaded(object sender, RoutedEventArgs e)
    		{
    	                 List<Sport> sports = REcupSport();
                                  foreach (Sport spo in sports)
                                   {
    		  LayoutRoot.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto });
    		  TextBox textblockid = new TextBox();
    		  textblockid.SetValue(TextBox.MarginProperty, new Thickness(10));
    		  textblockid.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center);
    		  Binding myBinding = new Binding("MyDataProperty");
    		  myBinding.Source = this.DataContext;
    		  textblockid.SetBinding(TextBlock.TextProperty, myBinding);
    	               LayoutRoot.Children.Add(textblockid);
     
     
    		}
    lorsque j'essaye ce code les controls sont crees mais pas de binding????

    mais lorsque j'essaye uu binding sur Xaml ça marche

    Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
    Text="{Binding Path=MyDataProperty, Mode=TwoWay}"
    des idées

  2. #2
    Membre émérite Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Par défaut
    A mon avis, le DataContext est null lorsque tu assignes la source et du coup, tu es bindé sur rien...

    Y-a-t'il d'autres messages d'erreurs dans la fenêtre d'output ?

    Bon courage,

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    433
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 433
    Par défaut
    Merci pour ta reponse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.DataContext = new MyViewModel();
    j'insatancie ma viewmodel dans le contructeur.
    dans un premier temps ça va etre vide mais aprés le click sur le bouton enregister normalement dois binder xaml avec ma propriété cs

    ce que je veux , lorsque je clique sur le bouton enregister :

    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
     
    
    	public event PropertyChangedEventHandler PropertyChanged;
    		private List<Sport> _sport;
    		private int _id0;
    		public ICommand SaveCommand { get; private set; }
    
               public Ecran1ViewModel()
                 {
    	 this._sport = new List<Sport>(); 
                  SaveCommand = new RelayCommand(o => OnSave(o));
                 }
    
            private void OnSave(object o)
            {
    	_sport.Add(new Sport(id0));        } 
    
             public int id0
    	 {
    	get
    	{
    	return _id0;
    	}
    	set
    	{
    	if (id0 != value)
    	{
    	_id0 = value;
    	if (PropertyChanged != null)
    	PropertyChanged(this, new PropertyChangedEventArgs("id0"));
    	}
    	}
    }
    
    
    j'arrive à recuperer un id0.

    voila merci.

Discussions similaires

  1. Bind dynamique sur hashset
    Par bertrand0756 dans le forum Spring
    Réponses: 5
    Dernier message: 31/08/2011, 13h33
  2. Binding dynamique non fonctionnel
    Par koyot3 dans le forum Windows Presentation Foundation
    Réponses: 10
    Dernier message: 14/06/2011, 09h53
  3. [.NET4.0] binding dynamique list d'image
    Par aram2 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 07/07/2010, 13h54
  4. Réponses: 12
    Dernier message: 22/04/2009, 11h17
  5. [Gridview] Colonnes et binding dynamique
    Par anthyme dans le forum Windows Presentation Foundation
    Réponses: 12
    Dernier message: 25/06/2008, 11h47

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