Como identificar qual elemento foi clicado duas vezes dentro de um ListBox?
eu tenho umlistbox
. olistbox
DataTemplate
consiste em poucosText Blocks
e algunsTextBoxes
.
O problema está no clique duplo do mouse. Preciso descobrir em qual elemento o clique duplo foi feito, para realizar algumas operações adicionais, como fazer oTextBox
editável e assim por diante. Ao mesmo tempo, preciso definir alguma ação para a lista, clique duas vezes também. Portanto, não consigo manipular o mouse separadamente para cada componente.
Portanto, preciso segurar o mouse para baixo para oListBox
e descubra em qual elemento o clique duplo foi feito.
Eu tentei com o código abaixo, mas ele retorna oListBox
éName
ao invés deTextBox
éName
:
private void myListBox_OnPreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
var mouseWasDownOn = e.Source as FrameworkElement;
if (mouseWasDownOn != null)
{
string elementName = mouseWasDownOn.Name;
}
}
Eu também tentei conforme as perguntas abaixo
WPF obter elemento (s) sob o mouse
Como saber em que controle o mouse clicou em uma tela?
Obtendo o UIElement lógico sob o mouse no WPF
public void ListBox_MouseDownHandler(object sender, MouseButtonEventArgs e)
{
HitTestResult target = VisualTreeHelper.HitTest(myListBoxName, e.GetPosition(myListBoxName));
while(!(target is Control) && (target != null))
{
target = VisualTreeHelper.GetParent(target);
}
}
Mas ainda não conseguiu encontrar uma solução. Por isso, ajude-me a obter o tipo ou nome do elemento com um clique duplo.