| 99 | } |
| 100 | |
| 101 | void RelativeAncestor::RemoveHandlers(const wux::FrameworkElement &element) noexcept |
| 102 | { |
| 103 | for (auto it = s_UnloadedTokenList.begin(); it != s_UnloadedTokenList.end();) |
| 104 | { |
| 105 | if (const auto fe = it->first.get()) |
| 106 | { |
| 107 | if (fe == element) |
| 108 | { |
| 109 | fe.Unloaded(it->second); |
| 110 | |
| 111 | it = s_UnloadedTokenList.erase(it); |
| 112 | } |
| 113 | else |
| 114 | { |
| 115 | ++it; |
| 116 | } |
| 117 | } |
| 118 | else |
| 119 | { |
| 120 | it = s_UnloadedTokenList.erase(it); |
| 121 | } |
| 122 | } |
| 123 | |
| 124 | for (auto it = s_LoadedTokenList.begin(); it != s_LoadedTokenList.end();) |
| 125 | { |
| 126 | if (const auto fe = it->first.get()) |
| 127 | { |
| 128 | if (fe == element) |
| 129 | { |
| 130 | fe.Loaded(it->second); |
| 131 | |
| 132 | it = s_LoadedTokenList.erase(it); |
| 133 | } |
| 134 | else |
| 135 | { |
| 136 | ++it; |
| 137 | } |
| 138 | } |
| 139 | else |
| 140 | { |
| 141 | it = s_LoadedTokenList.erase(it); |
| 142 | } |
| 143 | } |
| 144 | } |
| 145 | } |