/// <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); }