コード例 #1
0
        private async void MenuItem_BeforeQueryStatus(object sender, EventArgs e)
        {
            System.Diagnostics.Debug.WriteLine("MenuItem_BeforeQueryStatus");
            try
            {
                if (sender is OleMenuCommand menuCmd)
                {
                    var dte = await Instance.ServiceProvider.GetServiceAsync(typeof(DTE)) as DTE;

                    var logic = new InsertGridRowDefinitionCommandLogic(this.Logger, new VisualStudioAbstraction(this.Logger, this.ServiceProvider, dte));

                    var showCommandButton = logic.ShouldEnableCommand();

                    // Changed text isn't shown until subsequent display and so wrong number may be shown
                    ////if (showCommandButton)
                    ////{
                    ////    var rowNumber = logic.GetRowNumber();
                    ////    menuCmd.Text = $"Insert new row {rowNumber} definition"; // Will need localizing if/when get this working
                    ////}

                    menuCmd.Visible = menuCmd.Enabled = showCommandButton;
                }
            }
            catch (Exception exc)
            {
                this.Logger.RecordException(exc);
                throw;
            }
        }