Ribbon1.cs с использованием конструктора лент (т.е. без XML)
Я пытаюсь очистить содержимое выпадающего списка перед повторным заполнением списка новыми данными.
Я пыталсяиспользуя Invalidate () в нескольких местах, но я не могу заставить его работать.
Последовательность надстройки выглядит следующим образом:
Копирование текста в буфер обмена -> работает
Нажмите Поиск -> работает
Получить новые данные из базы данных, используя текст из буфера обмена -> работает
Очистить раскрывающийся список -> не работает
Заполните раскрывающийся список данными.-> Работает, но добавляет элементы в выпадающий список вместо того, чтобы сначала очистить его
Заранее спасибо
using System;
using System.Collections.Generic;
using System.IO;
using System.Data;
using System.Data.Odbc;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
using Office = Microsoft.Office.Core;
using Outlook = Microsoft.Office.Interop.Outlook;
using Microsoft.Office.Tools.Ribbon;
namespace MSTEST
{
public partial class Ribbon1 : Office.IRibbonExtensibility
{
private Office.IRibbonUI ribbon;
private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
{
this.ribbon = RibbonUI;
}
private void eventDB(object sender, RibbonControlEventArgs e)
{
RibbonUI.Invalidate();
//this.ribbon.InvalidateControl("resultsDB");
string getTextFromClipboard = Clipboard.GetText();
string queryString = "select distinct file_path as FP, case_id as CS, date_added from documents CONTAINS(documents.file_path, '" + getTextFromClipboard + "') group by case_id,file_path, datE_added order by Date_Added DESC";
using (OdbcConnection odbcConnection = new OdbcConnection("dsn=Needles;UID=dba;PWD=sql;"))
{
OdbcCommand command = new OdbcCommand(queryString, odbcConnection);
try
{
odbcConnection.Open();
OdbcDataReader reader = command.ExecuteReader();
// ribbon.InvalidateControl("resultsDB");
int i = 0;
while (reader.Read())
{
// Being DropDown Populate
RibbonDropDownItem item = this.Factory.CreateRibbonDropDownItem();
item.Label = reader["FP"].ToString();
resultsDB.Items.Add(item);
//MessageBox.Show(reader["CS"].ToString());
// End DropDown Populate
i = i + 1;
}
reader.Close();
odbcConnection.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
public string GetCustomUI(string RibbonID)
{
throw new NotImplementedException();
}
}
}