我結束了實施SharedMenuItem
的職責是註冊和更新需要更改的UI元素。上下文菜單不同,足以保證自己的處理程序。
而不是更新所有MenuItems我更新SharedMenuItem
,然後負責其他更改。
[編輯]代碼(添加其它性質是微不足道/自動-可生成的偶數):
public class SharedMenuItem
{
bool enabled = false;
public bool Enabled
{
get { return enabled; }
set
{
enabled = value;
foreach (var member in members)
{
member.Enabled = value;
}
}
}
bool visible;
public bool Visible
{
get { return visible; }
set
{
visible = value;
foreach (var member in members)
{
member.Visible = visible;
}
}
}
string text;
public string Text
{
get { return text; }
set
{
text = value;
foreach (var member in members)
{
member.Text = text;
}
}
}
string toolTipText = "";
public string ToolTipText
{
get { return toolTipText; }
set
{
toolTipText = value;
foreach (var member in members)
{
member.ToolTipText = toolTipText;
}
}
}
private List<ToolStripItem> members = new List<ToolStripItem>();
public void Remove(ToolStripItem member)
{
members.Remove(member);
}
public void Add(ToolStripItem member)
{
members.Add(member);
}
public SharedMenuItem(string text)
{
this.text = text;
}
}
「菜單從不同時顯示」並不完全正確考慮到我們都有`Toolbar`歸類用`Menu`和`ContextMenu`。 – Crisfole 2010-12-01 19:29:05