2010-08-19 13 views
0

Est-il possible d'avoir une propriété de dépendance "DataContext" dans une classe qui n'est pas dérivée de "FrameworkElement" (mais elle peut être dérivée de "DependencyObject")?WPF: propriété de dépendance DataContext dans les classes non-GUI?

J'ai déjà essayé et créé une classe (que j'ai ajoutée à Window.Resources), mais le DataContext est toujours nul.

Des idées?

+0

Qu'essayez-vous d'accomplir? –

+0

Le futur plan consiste à utiliser XAML avec liaison de données mais sans WPF. Et si je fais cela, je pourrais même fournir un très bon framework open source. Penser hors de la boîte - J'utiliserai XAML comme outil de création d'objet, en utilisant la liaison de données, mais (comme je l'ai dit) pas avec WPF. Et je vais remplir une niche, les gens ne pensaient même pas qu'il existe, hehehe ... cependant, les quelques personnes que j'ai montré jusqu'à présent mon idée ont été stupéfaits. – StormianRootSolver

+1

Je ne sais pas si c'est ce que vous cherchez, mais je sais qu'il existe des classes non-FrameworkElement (et non-FrameworkContentElement) qui peuvent "hériter" DataContext de leur parent à des fins de liaison. Par exemple, dans WPF 4, vous pouvez lier la propriété Command de InputBinding et utiliser le DataContext de son parent. Voir: http://tomlev2.wordpress.com/2009/10/26/vs2010-binding-support-in-inputbindings/ Peut-être que vous pourriez creuser dans ceci et voir si cela suggère n'importe quoi. –

Répondre

0

Avez-vous essayé d'utiliser la méthode AddOwner? Exemple (FrameworkContentElement):

DataContextProperty = FrameworkElement.DataContextProperty.AddOwner(typeof(FrameworkContentElement), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.Inherits, new PropertyChangedCallback(FrameworkContentElement.OnDataContextChanged))); 

Si vous laissez le rappel options/.. il pourrait fonctionner.