/// <inheritdoc />
        public BindableMenuTestVM()
        {
            RegisterChildren(() => this);

            MenuItemVM test, more, check;

            Menu.Add(test = new MenuItemVM {
                Caption = "_Test"
            });
            test.Items.Add(new MenuItemVM {
                Caption = "ActionCommand", CommandAction = { MːExecutedCallback = DoCommand }
            });
            test.Items.Add(new MenuItemVM {
                Caption = "Cut", Command = ApplicationCommands.Cut
            });
            test.Items.Add(new MenuItemVM {
                Caption = "-"
            });
            test.Items.Add(more = new MenuItemVM {
                Caption = "More"
            });
            more.Items.Add(check = new MenuItemVM {
                Caption = "Checker", IsCheckable = true
            });
            more.Items.Add(new MenuItemVM {
                Caption = "Dummy"
            });

            // #1 synchronize 2 bool values (functional, not optimized for reuse)
            // Fields[nameof(IsChecked)].ValueChangedEvent.add = (s, e) => check.IsChecked = (bool)e.NewValue;
            // check.Fields[nameof(MenuItemVM.IsChecked)].ValueChangedEvent.add = (s, e) => IsChecked = (bool)e.NewValue;
            // #2 synchronize 2 bool values (experimental)
            FieldBindingOperations.SetBinding(Fields[nameof(IsChecked)], new FieldBinding(check.Fields[nameof(MenuItemVM.IsChecked)]));
        }
 public static void SetBinding(this BackingFieldsStore.IBackingFieldInfo target, FieldBinding binding)
 {
     FieldBindingOperations.SetBinding(target, binding);
 }