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; } }