private static void TypeChanged(DependencyObject DO, DependencyPropertyChangedEventArgs e)
 {
     if (((Type)e.NewValue).IsEnum && !((Type)e.NewValue).IsEquivalentTo(((Type)e.OldValue)))
     {
         ListboxInPopup LiP = DO as ListboxInPopup;
         //LiP.UseAsFlaggedEnum = ((Type)e.NewValue).GetCustomAttributes(typeof(FlagsAttribute), false).Any();
         LiP.LB.ItemsSource = Enum.GetValues((Type)e.NewValue);
     }
 }
 private static void OnActualEnumValueChanged(DependencyObject DO, DependencyPropertyChangedEventArgs e)
 {
     #region info string
     //string t = $"e.NewValue = {e.NewValue.ToString()} of type {e.NewValue.GetType().Name}\n" +
     //    $"e.OldValue = {e.OldValue.ToString()} of type {e.OldValue.GetType().Name}\nLiP.Act...val={LiP.ActualEnumValue.ToString()}\n"
     //    +$"typeof lbi={LiP.LB.Items[0]?.GetType().Name}";
     //Task.Run(() => { MessageBox.Show(t); });
     #endregion
     ////////////////////////////////////////////////////////////////////////////////////////////////////
     //Enum E = (Enum)Activator.CreateInstance(LiP.SelectableValuesType);
     ListboxInPopup LiP = DO as ListboxInPopup;
     if (!LiP.AEV_ChangedByCheckbox)
     {
         Task.Run(() => { MessageBox.Show("HALT, SIR"); });
         Enum E = (Enum)Enum.Parse(LiP.SelectableValuesType, e.NewValue.ToString());
         foreach (Enum LBI in LiP.LB.Items)//короче, ричи. у него в айтемсах там все блядь enumTest
         {
             if (E.HasFlag(LBI))
             {
                 LiP.SkipCheckingCounter++;
                 if (LiP.UseAsFlaggedEnum)
                 {
                     LiP.LB.SelectedItems.Add(LBI);
                 }
                 else
                 {
                     LiP.LB.SelectedItem = LBI;
                     break;
                 }
             }
         }
     }
     else
     {
         LiP.AEV_ChangedByCheckbox = false;
     }
 }