1

我正在使用 MudBlazor,我想检测对单个表格行的双击并对事件做出反应。但是,表格的 API 中没有列出双击。回调很容易完成单击OnRowClick(另请参见SO 此处)。双击没有等效项。

ondblclick我尝试使用Blazor 事件

<MudTd @ondblclick="OnOrderDbClicked">
    // ...
<MudTd/>

我对此有两个问题:

  1. 我可以抓住双击。但我无法让它知道被点击的行(我有一个解决方法)。
  2. 此外,我必须添加到每个单元格,因为该<RowTemplate/>元素不会接受它。

我只有一个问题1的拐杖:将变量绑定MyOrderVM MyItemSelectedItem表的项目参数并在双击调用的方法中访问对象(因为双击也会导致两次单击选择项目)。

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

4

1 回答 1

6

正如您所说,目前没有像 OnRowClick 这样的开箱即用方式进行双击。但是,请随时在 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 的贡献者

于 2021-07-15T08:22:26.643 回答