怎么替换Quicker窗口组件的一些默认事件

使用问题 · 184 次浏览
里吉LiJ 创建于 2024-11-02 21:54

自定义窗口中添加比如ComboBox,Quicker会有一些默认的关于ComboBox的处理事件和样式,在快速开发的时候效果非常好,但是如果需要定制个性化处理时,就需要替换掉默认的处理事件,但是去除事件需要具体事件名称,所以有没有总结这些事件的文档什么的,具体例子比如我添加自定义的ComboBox的DropDownOpened事件:

 

          driverA.DropDownOpened += (sender, e) =>
          {
              string currentText = driverA.Text.Trim();

              if (!string.IsNullOrWhiteSpace(currentText))
              {
                  // 检查当前文本是否在 mainItems 中
                  if (mainItems.Contains(currentText, StringComparer.OrdinalIgnoreCase))
                  {
                      // 如果当前文本在 mainItems 中,保持显示 mainItems
                      driverA.ItemsSource = mainItems;
                  }
                  else
                  {
                      // 动态查找匹配项
                      var mylist = mainItems
                          .Where(s => s.ToLower().Contains(currentText.ToLower()))
                          .ToList();

                      // 更新 ComboBox 的 ItemsSource
                      driverA.ItemsSource = mylist;

                      // 重新设置文本框的内容
                      driverA.Text = currentText;

                      // 如果需要,可以将当前文本设置为选中项
                      if (mylist.Contains(currentText, StringComparer.OrdinalIgnoreCase))
                      {
                          driverA.SelectedItem = currentText;
                      }
                  }
              }
              else
              {
                  // 如果输入为空,显示所有选项
                  driverA.ItemsSource = mainItems;
              }
          };

 

添加上面的事件会和Quicker默认的DropDownOpened事件 叠加,效果变得很混乱( * VisualStudio 里是正常的),或者有没有什么方法能正常添加上面的事件的?


回复内容
CL 2024-11-03 08:15
#1

你可能需要创建一个自定义的ComboBox类型,然后动态创建控件添加到窗口上。

里吉LiJ 回复 CL 2024-11-14 00:29 :
做完了自定义控件后才发现,上面的事件代码我不小心注释了一句,才是导致效果混乱的原因,所以,不是和默认事件叠加导致的? 或者是Quicker没有默认的DropDownOpened事件
CL 回复 里吉LiJ 2024-11-14 14:18 :

事件应该都是叠加的。 += 

回复主贴