internal void Update(AvaloniaNativeMenuExporter exporter, IAvaloniaNativeFactory factory, NativeMenuItem item) { if (item != ManagedMenuItem) { throw new ArgumentException("The item does not match the menuitem being updated.", nameof(item)); } if (item.Menu != null) { if (_subMenu == null) { _subMenu = IAvnMenu.Create(factory); _subMenu.Initialise(exporter, item.Menu, item.Header); SetSubMenu(_subMenu); } _subMenu.Update(factory, item.Menu); } if (item.Menu == null && _subMenu != null) { _subMenu.Deinitialise(); _subMenu.Dispose(); SetSubMenu(null); } }
internal void Deinitialise() { if (_subMenu != null) { SetSubMenu(null); _subMenu.Deinitialise(); _subMenu.Dispose(); _subMenu = null; } _propertyDisposables?.Dispose(); _currentActionDisposable?.Dispose(); }
public void Initialise(IAvnMenu parent) { _parent = parent; }