小编Max*_*nev的帖子

Excel异步/等待工作不正确,Excel应用程序级外接程序中的Excel事件

我在加载项应用程序中使用async/await遇到问题,我有自定义任务窗格,用户可以用它下载一些数据,所以有问题:

  1. 等待操作完成后,控件不会返回到先前的执行上下文.我用windows窗体创建了一个示例并粘贴了相同的方法等待它工作正常 - 我可以在等待操作后使用表单控件,但不是在加载项中,我必须调用自定义任务窗格调用方法.简单的例子:

    private void SearchPaneButton_Click(object sender, EventArgs e)
    {
        Search();
    }
    
    private async void Search()
    {
        var searchText = SearchTextBox.Text;
        SearchPaneButton.Text = "Loading…";
        var data = await new DataServiceClient().GetDataAsync(searchText);
        this.Invoke((MethodInvoker)(() =>
        {
            SearchPaneButton.Text = "Search";
            ToggleWorkbookEvents();
        }));
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在我的加载项中,我需要处理一些事件 - 工作表已更改,工作表已激活/已停用,但这些事件消失,并且在等待操作后未触发,我必须在每次事件后使用"切换"(删除+添加)事件等待使用.简单的例子:

    private void ToggleWorkbookEvents()
    {
        var excel = Globals.MyAddIn.Application;
        //need to ensure event will not be set twice
        excel.SheetActivate -= CheckSheetForData;
        excel.SheetActivate += CheckSheetForData;
        if (excel.ActiveWorkbook != null)
        {
            var activeSheet = Globals.MyAddIn.GetActiveWorksheet();
            //need to ensure …
    Run Code Online (Sandbox Code Playgroud)

c# excel vsto add-in async-await

9
推荐指数
1
解决办法
2314
查看次数

Vue.js:折叠/展开父项中的所有元素

我需要为我的Vue组件添加"expand/collapse all"功能(一些可折叠面板).

如果用户单击折叠按钮然后单击某个面板并展开它,则单击折叠按钮将不执行任何操作,因为观察的参数不会更改.

那么如何正确实现这个功能(按钮必须总是折叠和扩展组件)?

我准备了简单的例子(抱歉格式不好,在编辑器中看起来不错:():

var collapsible = {
  template: "#collapsible",
  props: ["collapseAll"],
  data: function () {
      return {
        collapsed: true
    }
  },
  watch: {
  	collapseAll: function(value) {
    	this.collapsed = value
    }
  }
}

var app = new Vue({
	template: "#app",
  el: "#foo",
  data: {
      collapseAll: true
  },
  components: {
  	collapsible: collapsible
  }
});
Run Code Online (Sandbox Code Playgroud)
.wrapper {
  width: 100%;
}

.wrapper + .wrapper {
  margin-top: 10px;
}

.header {
  height: 20px;
  width: 100%;
  background: #ccc;
}

.collapsible {
  height: …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

add-in ×1

async-await ×1

c# ×1

excel ×1

javascript ×1

vsto ×1

vue.js ×1