public void InitializeCheckboxes() { checkboxesStackPanel.Children.Clear(); Queue <Color> colors = new Queue <Color>(); foreach (Color c in availableColors) { colors.Enqueue(c); } foreach (IPsaParameterDataViewModel paramDataViewModel in ((IPsaParametersSetViewModel)DataContext).Params) { ParameterCheckBoxViewModel cbViewModel = new ParameterCheckBoxViewModel(paramDataViewModel as ViewModelBase); Color current = colors.Dequeue(); cbViewModel.StrokeColor = current; cbViewModel.Stroke = new SolidColorBrush(current); cbViewModel.Text = paramDataViewModel.Type.Name; ParameterCheckBoxControl cbControl = new ParameterCheckBoxControl(); cbControl.DataContext = cbViewModel; cbControl.Text = cbViewModel.Text; cbControl.LineColor = cbViewModel.StrokeColor; cbControl.IsChecked = false; cbControl.Checked += SomeCheckBoxChecked; cbControl.Unchecked += SomeCheckBoxUnChecked; cbControl.HorizontalAlignment = HorizontalAlignment.Left; checkboxesStackPanel.Children.Add(cbControl); } }
private void OnSelectorCheckBoxChecked(object sender, EventArgs e) { ParameterCheckBoxViewModel cbvm = sender as ParameterCheckBoxViewModel; if (cbvm == null) { throw new ArgumentException("Wrong sender!"); } PsaParametersSetGraphControl controlGraph = ContentControlLower.Content as PsaParametersSetGraphControl; if (controlGraph == null) { throw new Exception("Wrong control is at place!"); } controlGraph.AddGraph(cbvm.ParamData as IPsaParameterDataViewModel, cbvm.StrokeColor); }