я читал XML в класс:MenuItem событие вызывается несколько раз
public class MenuItem
{
public string Header{get;set;}
public List<MenuItem> ChildMenuItems{get;set;}
}
Так я получаю
- Меню 1
- Меню 1.1
- Меню 1,2
-
- меню 1.2.1
-
- Меню 1.2.2
- Меню 2
- Меню 2.1
- Меню 2,2
Затем установите список в M enuViewModel
MenuItems = new ObservableCollection<MenuItem>(Service.GetMenu());
И в UserControl установить Properites для Caliburn Message.Attach и Action.TargetWithoutContext
<Setter Property="cal:Message.Attach" Value="[Event Click] = [Action MenuClick($originalsourcecontext)]" />
<Setter Property="cal:Action.TargetWithoutContext" Value="{Binding Path=DataContext, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}" />
Метод "MenuClick" иногда называют еще раз, то ожидается:
Если я Нажмите Меню 1 - > MenuClick выполняется 1 раз
Если я нажму Меню 1.1 -> MenuClick выполняется 2 раза
Если я нажму Меню 1.2.1 -> MenuClick выполняется 3 раза
Но я хотел бы, чтобы события Menu 1.1 и Menu 1.2.1 вызывались только один раз.
Любая идея?