#region toggle group public static string GetToggleGroup(DependencyObject obj) { return (string)obj.GetValue(ToggleGroupProperty); } public static void SetToggleGroup(DependencyObject obj, string value) { obj.SetValue(ToggleGroupProperty, value); } // Using a DependencyProperty as the backing store for ToggleGroup. This enables animation, styling, binding, etc... public static readonly DependencyProperty ToggleGroupProperty = DependencyProperty.RegisterAttached("ToggleGroup", typeof(string), typeof(Utilities), new PropertyMetadata(null, OnToggleGroupPropertyChanged)); private static void OnToggleGroupPropertyChanged(DependencyObject dp, DependencyPropertyChangedEventArgs args) { if (!(dp is ToggleButton)) throw new ArgumentException("Toggle Group can only be set on ToggleButton"); ToggleButton button = dp as ToggleButton; string newID = (string)args.NewValue; string oldID = (string)args.OldValue; if (oldID != null && groups.ContainsKey(oldID)) { groups[newID].Remove(button); button.Checked -= button_Checked; } if (newID != null) { if (!groups.ContainsKey(newID)) { groups.Add(newID, new List<ToggleButton>()); } groups[newID].Add(button); button.Checked += button_Checked; } } private static void button_Checked(object sender, RoutedEventArgs e) { ToggleButton button = sender as ToggleButton; string ID = GetToggleGroup(button); if (ID != null && groups.ContainsKey(ID)) { foreach (ToggleButton b in groups[ID]) { if (b != button) b.IsChecked = false; } } } private static Dictionary<string, List<ToggleButton>> groups = new Dictionary<string, List<ToggleButton>>(); #endregion
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.