2009-03-05 13 views

Antwort

3

Versuchen Sie Folgendes. Nicht ein Imperativ Experte WPF, so dass Sie diese leicht müssen verändern

public void Example() 
{ 
    var factory = new FrameworkElementFactory(typeof(TextBlock)); 
    factory.SetBinding(TextBlock.TextProperty, new Binding("Text")); 

    var dataTemplate = new DataTemplate(); 
    dataTemplate.VisualTree = factory; 
    dataTemplate.Seal(); 
} 
+0

Warum rufen Sie Seal() an? Dies behebt ein Problem, das beim Erstellen einer Vorlage und beim Binden an ein Telerik-Grid aufgetreten ist. In allen Beispielen, die ich zum dynamischen Erstellen einer DateTemplate gefunden habe, wurden andere Personen nicht mit Seal() verwendet. –

+0

@RalphWillgoss Es ist 4 Jahre her, seit ich diese Antwort geschrieben habe und ich habe meinen Grund vergessen, 'Seal' in dieser Zeit zu nennen :( – JaredPar

+0

Danke, ich könnte noch etwas recherchieren und sehen, was ich finden kann. Es könnte sein mit der Telerik-Steuerung, ich habe alles im Griff, will wissen, was unter der Haube los ist :-) –

3

Die korrekte Methode zum Erstellen von DataTemplates aus C# ist die Verwendung eines XamlReader und geben Sie, was Sie in Ihrer Frage geschrieben haben.

Was unangenehm ist, um es gelinde auszudrücken. Es tut uns leid.

2

ich nur die Online-Dokumentation geprüft - Alun ist richtig - die XamlReader verwenden. Laut Microsoft unterstützt die FrameworkElementFactory-Klasse nicht alle Features von XAML und ist möglicherweise in der Zukunft veraltet.

Nachdem ich das gesagt habe, habe ich FrameworkElementFactory verwendet, um DataTemplates on-the-fly zu ändern, und hatte keine Probleme.

Verwandte Themen