2010-12-14 21 views
0

J'ai un contrôle TextBox pour la recherche, et un contrôle TreeView ci-dessous. Ce dont j'ai besoin, c'est quand j'appuie sur le "Down Key ↓" tout en mettant l'accent sur la recherche TextBox, je dois dire à la TreeView "une touche vers le bas a été pressé alors que le focus sur vous" ... I don ' J'ai besoin de déclencher un événement KeyUp sur TreeView ou quelque chose, j'en ai besoin pour faire la même chose que si j'avais appuyé sur la touche Down tout en mettant l'accent dessus!Acheminer un événement dans un contrôle frère dans WPF

Est-ce possible?

Répondre

0

Pouvez-vous faire quelque chose comme ce qui suit:

private void TextBox_KeyUp(object sender, KeyEventArgs e) 
{ 
    TreeView1.RaiseEvent(e); 
} 
+0

merci « decyclone », mais j'ai essayé et l'action que je veux ne pas arrivé. Cela soulèvera l'événement KeyUp sur l'arborescence et l'événement attendra un gestionnaire ... ce dont j'ai besoin est: "faire treeview faire comme si je pressais la touche X pendant qu'elle est focalisée" –

0
protected override void OnStartup(StartupEventArgs e) 
{ 
    EventManager.RegisterClassHandler(typeof(TextBox), 
     TextBox.KeyUpEvent, 
     new System.Windows.Input.KeyEventHandler(TextBox_KeyUp)); 

    base.OnStartup(e); 
} 

private void TextBox_KeyUp(object sender, System.Windows.Input.KeyEventArgs e) 
{ 
    if (e.Key != System.Windows.Input.Key.Down) return; 

    TreeViewItem newChild = new TreeViewItem(); 

    newChild.Header = "a Down Key has been pressed while the focus on you"; 

    Parent.Items.Add(newChild); 
    e.Handled = true; 
    //MessageBox.Show("Enter pressed"); 
} 
+0

merci "eibhrum", je fais Je ne veux pas ajouter de nouveau noeud. Que se passe-t-il lorsque j'appuie sur la touche Bas lorsque je me concentre sur l'arborescence? Je veux que cela se produise exactement quand j'ai appuyé sur la touche Bas tout en mettant l'accent sur la zone de texte! –