private void OnPropertyHasChanged(object sender, StatusChangedEventArgs args)
        {
            MaidInfo maid = SelectedMaid;

            if (maid == null)
            {
                return;
            }

            if (maid.Maid != args.CallerMaid)
            {
                return;
            }

            if (valueUpdateQueue[currentQueue].ContainsKey(args.Tag))
            {
                Debugger.WriteLine(LogLevel.Warning, $"Tag already in update queue {currentQueue}! Aborting...");
                return;
            }
            switch (args.Tag)
            {
            case MaidChangeType.NewGetWork:
            case MaidChangeType.Work:
                valueUpdateQueue[currentQueue].Add(args.Tag, () => maid.UpdateHasWork(args.ID));
                break;

            case MaidChangeType.NewGetSkill:
            case MaidChangeType.Skill:
                valueUpdateQueue[currentQueue].Add(args.Tag, () => maid.UpdateHasSkill(args.ID));
                break;
            }
        }