Мне нужно получить значения из массива, который я хочу поместить в combobox
Проблема в том, что у меня есть код в моей программе, который должен заполнить combobox значениями в массиве, но он, похоже, не работает.
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation; // The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 namespace Arsalan_Salam_991571527_A2 { /// <summary> /// An empty page that can be used on its own or navigated to within a Frame. /// </summary> public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); AddingEnumIntoComboBox(null); AddingIntArrayIntoComboBox(null); } //private List<Product> _products = new List<Product>(); private CarRepository _carRepository = new CarRepository(); private Car CaptureProductInfo() { string vinNumber = vinNumberInput.Text; string carMake = carMakeInput.Text; CarType typeOfCar = (CarType)carTypeInput.SelectedItem; float purchasePrice = float.Parse(purchasePriceInput.Text); int modelYear = Int32.Parse((string)modelYearInput.SelectedItem); int mileage = Int32.Parse(mileageInput.Text); Car c = new Car(vinNumber, carMake, typeOfCar, purchasePrice, modelYear, mileage); AddingIntArrayIntoComboBox(c); return c; } private void RenderProductInfo(Car car) { vinNumberInput.Text = car.VinNumber; carMakeInput.Text = car.CarMake; carTypeInput.Text = car.TypeOfCar.ToString(); purchasePriceInput.Text = car.PurchasePrice.ToString(); modelYearInput.Text = car.ModelYear.ToString(); mileageInput.Text = car.Mileage.ToString(); } private void ClearUI() { vinNumberInput.Text = ""; carMakeInput.Text = ""; carTypeInput.Text = ""; purchasePriceInput.Text = ""; modelYearInput.Text = ""; mileageInput.Text = ""; errorMessageOutput.Text = ""; } private void OnCarSelectionChanged() { //1. get the selected product Car c = (Car)lstCarDetailOutput.SelectedItem; //2. render the fields in the textboxes RenderProductInfo(c); } private void AddingEnumIntoComboBox(object p) { foreach (var item in Enum.GetValues(typeof(CarType))) { var carTypeName = Enum.GetName(typeof(CarType), item); carTypeInput.Items.Add(carTypeName); } } private void AddingIntArrayIntoComboBox(Car c) { for (int i = 0; i < c._modelYear.Length; i++) { int year = c._modelYear[i]; modelYearInput.Items.Add(year); } } private void addingCar_Click(object sender, RoutedEventArgs e) { try { //_products.Add(CaptureProductInfo()); Car c = CaptureProductInfo(); _carRepository.AddProduct(c); lstCarDetailOutput.Items.Add(c);//the advantage of adding Product rather than a string? } catch (Exception ex) { errorMessageOutput.Text = ex.Message; } // } private void clearing_Click(object sender, RoutedEventArgs e) { ClearUI(); } private void updatingCar_Click(object sender, RoutedEventArgs e) { OnCarSelectionChanged(); } } }
Вот и весь код
Что я уже пробовал:
У меня был другой способ заполнения моего второго combobox который называется modelYearInput и код который я использую для этого как показано ниже:
private void AddingIntArrayIntoComboBox(Car c) { for (int i = 0; i < c._modelYear.Length; i++) { int year = c._modelYear[i]; modelYearInput.Items.Add(year); } }
Заранее благодарю вас за любую помощь