Hi,
I need to good solution to bind Menus and its Sub Menus Dynamically in Silver Light4. I searched but cant find the exact one. Please help.
I got a List that contains Menus, Sub Menus. I need to Split it which is root Menu and its Sub Menus.
Thanks,
Vijay
Loading
Priya LingePosted Nov 17, 2011, 5:21 AM
Generate Menu and SubMenu dynamically :
//Namespace
using System.Windows.Controls;
using SL4PopupMenu;
MainPage.Xaml
private void GenerateMenu()("Item 1,Item 2,Item 3,Item 4,Item 6".Split(','));
{
var data = new ObservableCollection
DataGrid dataGrid1 = new DataGrid() { ItemsSource = data,Height=700,Width=200 };
this.LayoutRoot.Children.Add(dataGrid1);
// Create the submenu().GetIndex()); });
PopupMenu spmTimeNow = new PopupMenu();
spmTimeNow.AddItem("Time Now", null);
// Create the main menu
PopupMenu pm1 = new PopupMenu();
pm1.AddItem("Delete row", delegate { data.RemoveAt(pm1.GetClickedElement
pm1.AddSeparator();
pm1.AddSubMenu(spmTimeNow, "Get Time ", "Images/arrow.png", null, null, false, null); // Attach the submenu pmTimeSub
pm1.AddSeparator();
//pm1.AddItem("Demo2", delegate { this.Content = new Demo2(); });
// Set dataGrid1 as the trigger element
() != null;
pm1.AddTrigger(TriggerTypes.RightClick, dataGrid1);
// Showing main menu
pm1.Showing += (sender, e) =>
{
pm1.PopupMenuItem(0).Header = "Delete " + dataGrid1.SelectedItem;
pm1.PopupMenuItem(0).IsVisible =
pm1.PopupMenuItem(1).IsVisible = pm1.GetClickedElement
};
// Showing submenu
spmTimeNow.Showing += delegate
{
spmTimeNow.PopupMenuItem(0).Header = DateTime.Now.ToLongTimeString();
};
}
public MainPage()
{
InitializeComponent();
GenerateMenu();
}
Please check attached code file.
Hope this will help you.
Thanks.