public ControlGroupSettings(GroupSettings settings = null) { InitializeComponent(); if (settings != null) { Settings = settings; // for each member in settings foreach (IMember member in Settings.Members) { UserControl control; // Get control based on member's id type if (member is MemberSID) { control = new ControlGroupSIDSetting(member as MemberSID); } else if (member is MemberUsername) { control = new ControlGroupUsernameSetting(member as MemberUsername); } else { // How'd we get here... throw new Exception(string.Format("Unknown member identifier type ({0}) for member ({1}) in group ({2})", member.IDType, member.Identifier, settings.GroupName)); } // Create container before adding to items control to apply default style Grid container = new Grid(); // Add control to grid container.Children.Add(control); // Add grid to items control listUserConfigs.Items.Add(container); } } DataContext = this; }
private void btnAddSID_Click(object sender, RoutedEventArgs e) { // Create containing grid Grid grid = new Grid(); // Create member MemberSID member = new MemberSID(); // Add member to group setting's list Settings.Members.Add(member); // Create SID setting element ControlGroupSIDSetting control = new ControlGroupSIDSetting(member); // Add element to grid (to apply default style) grid.Children.Add(control); // Add element to user config items control listUserConfigs.Items.Add(grid); }