2010-08-17 5 views
2

J'ai construit une struct nommée Fraction, avec trois propriétés: valeur double, int Numérateur et int Dénominateur. Dans ma source de données, j'utilise la fraction comme propriété, Position de la fraction.liaison à un sous-propriété

Les données sont liées comme ceci:

<TextBox Text="{Binding Path=Position.Numerator}"/> 
    <TextBox Text="{Binding Path=Position.Denominator}"/> 

mais la liaison arrive à travailler une seule façon - de la source à la cible. J'ai essayé d'attraper l'événement SourceUpdated, mais cela n'a pas fonctionné.

Existe-t-il un moyen de forcer la liaison bidirectionnelle? J'ai essayé Mode = TwoWay, mais cela n'a pas fonctionné non plus.

Répondre

0

Vous devrez peut-être créer Position comme une propriété de dépendance de sorte que lorsque la source met à jour trop

mises à jour cibles Modifier

s'il vous plaît vérifier devrait être quelque chose comme

public static readonly DependencyProperty PositionProperty = DependencyProperty.Register("Position", typeof(Fraction), typeof(NoteUserControl),new UIPropertyMetadata(new Fraction())); 

public Fraction Position 
     { 
      get { return (Fraction)GetValue(PositionProperty); } 
      set 
      { 
       SetValue(PositionProperty, value); 

      } 
     } 

espoir NoteUserControl est la classe dans laquelle vous avez défini la propriété de dépendance

+0

J'ai ajouté cette ligne: public static readonly DependencyProperty PositionProperty = DependencyProperty.Register ("Position", typeof (fraction), typeof (NoteUserControl)); et la liaison a cessé de fonctionner du tout! – gideonrv

+0

@gideonrv s'il vous plaît voir le Edit –

+0

Je l'ai essayé, avec UIPropertyMetadata et sans elle, mais cela ne fonctionne toujours pas. J'espère qu'en tant que musicien, vous aimeriez voir mon projet. C'est un pianoroll MIDI. Merci d'envoyer un message à [email protected] – gideonrv