s eventos @MouseDoubleClick não surgem

Meu cenário, simplificado: eu tenho um ListView contendo linhas de Funcionários e, em cada linha de Funcionário, existem os botões "Aumentar" e "Diminuir" ajustando seu salári

Pretenda que, no meu programa, clicar duas vezes na linha de Funcionário significa "despedir esta pessoa"

Oproblem é que enquanto clico em "Aumentar" rapidamente, isso dispara um evento de clique duplo no ListViewItem. Naturalmente, não quero demitir pessoas quando estou apenas aumentando o salário delas.

De acordo com o funcionamento de todos os outros eventos, espero poder resolver isso definindoHandled=true no evento. Isso, no entanto, não funciona. Parece-me que o WPF gera dois eventos de clique duplo separados e completamente desvinculado

A seguir, um exemplo mínimo para reproduzir meu problema. Os componentes visíveis:

<ListView>
    <ListViewItem MouseDoubleClick="ListViewItem_MouseDoubleClick">
            <Button MouseDoubleClick="Button_MouseDoubleClick"/>
    </ListViewItem>
</ListView>

E o código do manipulador:

private void Button_MouseDoubleClick(object s, MouseButtonEventArgs e) {
    if (!e.Handled) MessageBox.Show("Button got unhandled doubleclick.");
    e.Handled = true;
}

private void ListViewItem_MouseDoubleClick(object s, MouseButtonEventArgs e) {
    if (!e.Handled) MessageBox.Show("ListViewItem got unhandled doubleclick.");
    e.Handled = true;
}

Depois de iniciar este programa e clicar duas vezes no botão listado,ambo messageboxes aparecem em sequência. (Além disso, o botão fica preso na posição abaixada depois disso.)

Como uma "correção" Ipod, no manipulador ListViewItem, inspecione a árvore visual anexada ao evento e verifique se "existe um botão em algum lugar" e, portanto, descarte o evento, mas esse é o último recurso. Quero pelo menos entender o problema antes de codificar esse kludg

Alguém sabeporqu WPF faz isso e uma maneira idiomática elegante de evitar o problem

questionAnswers(7)

yourAnswerToTheQuestion