C#在普通Windows form程序中动态加载菜单的文章很多,但搜了半天发现WPF中动态菜单项目的介绍很少。是不是我 的想法很奇怪呢?呵呵,不管了,记录一下实现过程。
private void MainFrm_Load(object sender, EventArgs e)
{
LoadAllPlugs(); //加载所有组件
LoadAllMenus(); //加载菜单
}
//加载主菜单函数
private void SetMenu(MenuStrip mMain, string mName)
{
try
{
string strSql;
int i;
IDBOperator db = DBOperator.GetInstance();
strSql = "SELECT * FROM SYS_Plugsins WHERE FStatus='1' And FParentNo='" + mName + "' Order by FMenuSequence";
DataTable dt = new DataTable();
dt = db.ReturnDataTable(strSql);
if (dt.Rows.Count > 0)
{
for (i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i]["FParentNo"].ToString() == "0")
{
ToolStripMenuItem mItem;
mItem = new ToolStripMenuItem(dt.Rows[i]["FMenuText"].ToString());
mItem.Name = dt.Rows[i]["FMenuName"].ToString();
mItem.AccessibleDescription = dt.Rows[i]["FPlugsins"].ToString(); //借用这个属性
mMain.Items.Add(mItem);