2009-07-22 8 views
6

Quelqu'un peut-il me dire quel est l'équivalent C# de l'extrait de code XAML suivant?WPF - aide à la conversion de l'expression de liaison XAML en codebehind

<my:DataGridTextColumn 
       Visibility="{Binding Path=DataColumns[21].IsVisible, Source={StaticResource viewmodel}, Converter={StaticResource vc}}"      
       Binding="{Binding SdDevDuration}" 
       /> 

C'est le lien de visibilité que je ne peux pas obtenir. DataGridTextColumn n'est pas un FrameworkElement, donc pas de méthode SetBinding.

Merci à l'avance,

Matt

Répondre

11

moi avons travaillé cela. Pour toute personne intéressée, vous pouvez utiliser le BindingOperation.SetBinding method.

Le code complet est,

var newCol = new DataGridTextColumn(); 
newCol.Binding = new Binding("SdDevDuration"); 

var visiblityBinding = new Binding("IsVisible"); 
visiblityBinding.Source = col; 
visiblityBinding.Converter = new VisibilityConverter();       
BindingOperations.SetBinding(newCol, DataGridTextColumn.VisibilityProperty, visiblityBinding); 
+0

Acceptez votre réponse. – Sauron

+0

Je le ferai. Donc en me disant que je dois attendre avant d'accepter ma propre réponse. –

0

Je mis un StaticResource, mais toujours eu erreur d'exécution AG_E_BAD_PARSER Source de la visibilité, ressemble à cela fonctionne dans WPF, mais pas Silverlight. J'utilise Silverlight 3 DataGridTextColumn. avez-vous essayé cela dans Silverlight?

J'ai trouvé un autre lien lié à ce problème, mais je n'ai pas encore trouvé la solution. Silverlight DataGridTextColumn Binding Visibility

Questions connexes