2016-02-16 3 views
0

Je n'ai pas pu résoudre le problème, que la propriété TextBoxBase est manquante dans les contrôles. Si je crée un TextBox, je peux définir la propriété TextBoxbase, mais nulle part ailleurs. Si j'écris TextBoxBase.TextChanged="Window_TextChanged" dans l'élément de la fenêtre, alors il est accepté, mais intellisense ne le fournit pas, en outre, aucun appel ne se produit pendant l'exécution. ButtonBase, etc n'apparaissent pas aussi. Je suis en train d'utiliser Visual Studio 2015 Community Edition.
La propriété WPF TextBoxBase est manquante (et d'autres également)

Qu'est-ce qui me manque?

Répondre

1

D'abord le TextBoxBase n'est pas une propriété de n'importe quel élément WPF, c'est une classe. Deuxième TextChanged est un événement que occcurs when content changes in the text element - n'a de sens que pour les éléments de texte comme TextBox ou RichTextBox.

Pouvez-vous expliquer ce que vous essayez d'atteindre?

+0

Oui! J'apprends des événements routés dans WPF. Plus précisément, comment fonctionne le tunnel et le bouillonnement et essayer d'en faire un exercice: Il existe une zone de texte avec un événement TextChanged. Quand il est modifié, un MessageBox apparaît. L'exercice me dit si j'ajoute TextBoxBase.TextChanged = "Grid_TextChanged" 'et TextBoxBase.TextChanged =" Window_TextChanged "' au contrôle 'Grid' et' Window', alors ils devraient aussi gérer l'événement textchange. – Harb

+0

Je vois. Pouvez-vous vérifier que vous n'avez pas défini 'args.Handled' à' true' qui arrête de bouillonner. Voir http://stackoverflow.com/questions/6914942/how-do-i-get-textchanged-events-from-an-editable-combobox pour plus d'informations et utiliser WPF Spy Utility Snoop https://snoopwpf.codeplex.com/ ce qui est très utile. –

+0

Moi stupide. Oui, le handle = true était le problème! En outre, pourriez-vous me dire pourquoi l'intellisense ne fournit pas la classe 'TextBoxBase', etc. dans l'éditeur XAML? Pour le 'TextBox' lui-même il montre' TextBoxBase' mais pas pour les autres contrôles. – Harb