Est-il possible de définir la propriété DataContext d'un contrôle usercontrol après le chargement du contrôle utilisateur et de forcer le contrôle usercontrol?Silverlight: comment forcer la liaison après avoir défini la propriété DataContext
2
A
Répondre
5
Je suis assez sûr que si vous définissez juste la datacontext à nouveau, il rebind
1
Définition de la propriété DataContext devrait provoquer le retirage.
5
Si vous devez effectuer un travail supplémentaire lorsque le DataContext change, vous pouvez utiliser un DependencyProperty personnalisé et le lier à la propriété DataContext. Utilisez DependencyPropertyChangedEventHandler pour savoir quand le point de distribution a été modifié.
Pour une explication plus complète, voir mon article de blog au http://msmvps.com/blogs/theproblemsolver/archive/2008/12/29/how-to-know-when-the-datacontext-changed-in-your-control.aspx.
1
Une autre façon de forcer re-lier, par exemple:
MyDataGrid.SetBinding(DataGrid.ItemsSourceProperty,
MyDataGrid.GetBindingExpression(DataGrid.ItemsSourceProperty).ParentBinding);
Cette méthode pourrait être utilisée pour DataContext aussi bien.
Si vous définissez le contexte de données de la même manière que précédemment, il ne se reconnectera pas. Dans ce cas, réglez-le sur null d'abord, puis sur ce qu'il était avant, pour le forcer à se relier. – Edward