2010-08-18 3 views
2

Ceci est mon Listview code XAML:question contraignante WPF

<ListView ItemsSource="{Binding Items}" Margin="0" Grid.Row="1" > 
      <ListView.View> 
       <GridView> 
       <GridViewColumn 
        Header="OperatorId" 
        DisplayMemberBinding="{Binding OperatorId}" x:Name="operatorIdColumn"/> 
       <GridViewColumn 
        Header="OperatorValue" x:Name="operatorValueColumn" 
        DisplayMemberBinding="{Binding Row.OperatorRow.Value}" /> 
      </GridView> 
      </ListView.View> 
     </ListView> 

Comment puis-je faire la operatorValueColumn se mettre à jour en cas de changement de valeur de operatorIdColumn ?. En d'autres termes, comment puis-je faire cela quand OperatorId change? INotifyPropertyChanged a été implémenté dans l'objet auquel ListView est lié.

Édition: La vue Liste est liée à la DataTable d'un TypedDataSet. Le "Row.OperatorRow.Value" se connecte essentiellement à la table parent (opérateurs) pour obtenir la valeur réelle. Lorsque j'essaie de modifier OperatorId, operatorIdColumn met à jour le nouvel ID mais operatorValueColumn ne se met pas à jour avec la nouvelle valeur d'opérateur.

Si je peux forcer une mise à jour de liaison sur operatorValueColumn en fonction de la modification operatorId, j'obtiendrai la nouvelle valeur. Cela pourrait être un hack, mais je veux savoir comment le faire si possible.

Il s'agit d'un contrôle Usercontrol qui sera utilisé pour vérifier rapidement les valeurs locales de la structure de données. Les modèles ne sont donc pas importants.

+0

Pourquoi doit-il être mis à jour si sa valeur n'a pas changé? Est-ce qu'il affiche différemment en fonction de la valeur de operatorIdColumn? – Mike

+0

On ne sait pas ce que vous essayez d'accomplir. Qu'est-ce que vous liez ici '{Binding Row.OperatorRow.Value}'? –

+0

@ Mike, Eduardo - J'ai inclus une section d'édition qui répond à vos questions – SKG

Répondre

0

SKG, essayez une méthode obligatoire à passer dans un OperatorId qui crache le correspondant Row.OperatorRow.Value pour cette OperatorID ...

0

solution simple est d'utiliser plusieurs contraignant et se lier aux deux colonnes .. sur le multi convertisseur toujours retourner celui que vous voulez présenter.