PDA

View Full Version : بدست آوردن Header و رویداد کلیک تمامی زیر منوهای یک منو



PetekDincos
چهارشنبه 06 مهر 1390, 12:34 عصر
با سلام
من می خوام در یک منو که دارای چندین زیر منو می باشه بتونم در یک لیست Header تمامی زیر منو ها رو همراه با رویداد کلیک مربوط به اون بدست بیارم شاید سوالم گنگ باشه ببینید خواسته من اینه مثلا


<Menu Name="MainMenu" >
<MenuItem Header="File" >
<MenuItem Header="New" Click="MenuItem_Click" Icon="pack://application:,,,/Icon/New.png" />
<MenuItem Header="Open" Click="MenuItem_Click_1" Icon="pack://application:,,,/Icon/Open.png" />
</MenuItem>
<MenuItem Header="View" >
<MenuItem Header="Cut" Click="MenuItem_Click_2" Icon="pack://application:,,,/Icon/Cut.png" />
<MenuItem Header="Copy" Click="MenuItem_Click_3" Icon="pack://application:,,,/Icon/Copy.png" />
</MenuItem>
</Menu>

که با نام MainMenu می باشه می خوام یک کلاس به این صورت که Header و نام رویداد در کلیک این منو و مسیر Icon منو آیتم مربوط به هر یک از MenuItem های این منو رو در کلاس زیر به صورت لیست برای کل کلاس بدست بیارم


public Class MenuClass
{
public string HeaderName{get;set;}
public string ClickEventName{get;set;}
public string IconPath{get;set;}
}

بعنی در این کلاس برای کل منو به صورت لیست ذخیره کنم ممنون می شم راهنماییم کنید با تشکر

PetekDincos
چهارشنبه 06 مهر 1390, 12:43 عصر
با سلام
این کار رو خیلی ساده با استفاده از کد زیر می شه انجام داد اما آیا روش بهتری وجود دارد


foreach (MenuItem item in MainMenu.Items)
{
MessageBox.Show(item.Header + "\n" + item.Icon);
foreach(MenuItem item2 in item.Items)
MessageBox.Show(item2.Header + "\n" + item2.Icon);
}