Reputation: 441
what i have tried is?
MenuFlyout MenuFlyout=new MenuFlyout();
ToggleMenuFlyoutItem ToogleMenuflyoutItem1= new ToggleMenuFlyoutItem();
ToogleMenuflyoutItem1.Click+=Clicked;
ToggleMenuFlyoutItem ToogleMenuflyoutItem2= new ToggleMenuFlyoutItem();
ToogleMenuflyoutItem2.Click+=Clicked;
ToggleMenuFlyoutItem ToogleMenuflyoutItem3= new ToggleMenuFlyoutItem();
ToogleMenuflyoutItem3.Click+=Clicked;
ToggleMenuFlyoutItem ToogleMenuflyoutItem4= new ToggleMenuFlyoutItem();
ToogleMenuflyoutItem4.Click+=Clicked;
MenuFlyout.Items.Add(ToogleMenuflyoutItem1);
MenuFlyout.Items.Add(ToogleMenuflyoutItem2);
MenuFlyout.Items.Add(ToogleMenuflyoutItem3);
MenuFlyout.Items.Add(ToogleMenuflyoutItem4);
private void Cliked(object sender, RoutedEventArgs e)
{
//I need All ToogleMenuFloutItem List//Here
}
I don't know how to achieve this?I want all the ToogleMenuFlyoutItem inside an clicked event of any ToogleMenuFlyoutItem.
Upvotes: 0
Views: 462
Reputation: 271
This is definitely really ugly way. But if what you really want is 'Get every ToggleMenuFlyoutItems from only one of ToggleMenuFlyoutItem's Click event method'. Maybe this is one of the way for that.
private void Clicked(object sender, RoutedEventArgs e)
{
var item = sender as ToggleMenuFlyoutItem;
List<ToggleMenuFlyoutItem> itemList = new List<ToggleMenuFlyoutItem>();
DependencyObject current = item;
while (true)
{
current = VisualTreeHelper.GetParent(current);
if(current is MenuFlyoutPresenter || current == null)
{
break;
}
}
if(current != null)
{
var flyoutPresenter = (current as MenuFlyoutPresenter);
var items = flyoutPresenter.Items;
foreach (var x in items)
{
if(x is ToggleMenuFlyoutItem)
{
itemList.Add(x as ToggleMenuFlyoutItem);
}
}
}
foreach(var x in itemList)
{
///something;
}
}
Upvotes: 0
Reputation: 3304
If you want all ToogleMenuFlyoutItem
, then you need to define out of the context.
MenuFlyout MenuFlyout=new MenuFlyout();
Then inside Clicked
event, use
private void Clicked(object sender, RoutedEventArgs e)
{
foreach(var item in menuFlyout.Items)
{
if (item != null)
{
var toogleMenuflyoutItem = item as ToggleMenuFlyoutItem;
}
}
}
Upvotes: 2