如何检测双击 MudBlazor 中的 table 行?

How to detect a double click on a table row in MudBlazor?

我正在使用 MudBlazor,我想检测对单个 table 行的双击并对事件做出反应。但是,API of the table. The single click is easy to do with the OnRowClick callback (see also ) 中没有列出双击。没有等效的双击。

我尝试将 Blazor 事件 ondblclick

一起使用
<MudTd @ondblclick="OnOrderDbClicked">
    // ...
<MudTd/>

我有两个问题:

  1. 我能捕捉到双击。但是我无法让它知道被单击的行(对此我有一个解决方法)。
  2. 我还必须添加到每个单元格,因为 <RowTemplate/> 元素不会接受它。

我只有问题1的拐杖:将变量MyOrderVM MyItem绑定到table的SelectedItem项参数,并在table调用的方法中访问对象双击(因为 其中 select 项目)。

我没有做过很多测试,但似乎这可行,但是没有更好的解决方案吗?还是我太担心副作用了?

正如您所说,目前没有像 OnRowClick 这样的开箱即用的双击方式。但是,请随意创建 issue in the repo.

作为变通方法,您可以使用方法 1 稍作调整以停止将点击事件传播到 MudTable。我认为这种方式比绕过 SelectedItem

更容易理解
<MudTd>
  // the click is handled by the div and not bubbling up to the MudTd
  <div @onclick="@EmptyCallback" @onclick:stopPropagation="true" 
              @ondblclick="@( (x) => DoSomething(context))" >
     // ...
  </div>
<MudTd/>

这里有一个MudBlazor Playground来展示一下。

免责声明:

我是 MudBlazor 的贡献者