private void CreateInitializationList(object sender, RoutedEventArgs e) { //Validate Inputs if (!IsValidInputs()) { return; } //Reset InitializationList.Clear(); InitializationPanel.Children.Clear(); //Add vertical Line for start day Grid verticalLine = ShapeService.GetVerticalLineWithNumber(0); InitializationPanel.Children.Add(verticalLine); //Set DefaultType DefaultType = DefaultHouseTypeIsActive.IsChecked == true ? HouseType.Аctive : HouseType.Inactive; //Set DefaultUrlPicture DefaultUrlPicture = DefaultType == HouseType.Аctive ? UrlPicture.ACTIVE_HOUSE : UrlPicture.INACTIVE_HOUSE; //Set NumberOfElements NumberOfElements = int.Parse(NumberOfHouses.Text); for (int i = 0; i < NumberOfElements; i++) { InitializationList.Add(new House { Number = i + 1, UrlPicture = DefaultUrlPicture, HouseType = DefaultType, }); StackPanel wrapper = new StackPanel(); Grid horizontalLine = ShapeService.GetHorizontalLineWithNumber(i + 1); Image image = ShapeService.GetImage(); Binding binding = new Binding(); binding.Source = InitializationList; binding.Path = new PropertyPath($"[{i}].UrlPicture"); image.SetBinding(Image.SourceProperty, binding); Button button = ShapeService.GetButton(); button.Click += ReverseImage; button.CommandParameter = i; wrapper.Children.Add(horizontalLine); wrapper.Children.Add(image); wrapper.Children.Add(button); InitializationPanel.Children.Add(wrapper); } }