protected override void Scan() { var realName = Name; string?windowName = null; if (realName.Contains(":")) { var nameSplit = realName.Split(new[] { ':' }, 2); realName = nameSplit[0]; windowName = nameSplit[1]; } var priTarget = AffectedObject; if (windowName == null) { if (!(priTarget is System.Windows.Window)) { priTarget = System.Windows.Window.GetWindow(priTarget); } if (priTarget == null) { Debug.Write($"ControlHelper: No Window Found: {DataContext.GetType()}|{realName}"); } } else { priTarget = System.Windows.Application.Current.Windows.Cast <System.Windows.Window>().FirstOrDefault(win => win.Name == windowName); if (priTarget == null) { Debug.WriteLine($"ControlHelper: No Window Named {windowName} Found"); } } if (priTarget == null) { return; } foreach (var member in MemberInfoAttribute.GetMembers <WindowTargetAttribute>(DataContext.GetType()) .Where(mem => mem.Item1 == realName)) { try { member.Item2.SetInvokeMember(DataContext, priTarget); } catch (Exception e) { Debug.WriteLine("ControlHelper: Error On {0} Member Acess: {1}", member.Item2.Name, e); throw; } } }
protected override void Scan() => MemberInfoAttribute.InvokeMembers <ControlTargetAttribute>(DataContext, Name, AffectedObject);