TheBigBearNow Ответов: 2

Создание 1 списка свойств<object> из 4 отдельных списков<T>


Всем привет,
У меня есть окно C# WPF,в которое я вставляю 4 списка<t> a string,decimal, decimal и int. Каждый список пронумерован правильно 0,1,2... с правильной информацией в порядке следования в списке. Я пытаюсь создать общественную собственность список<объект MyObject&ГТ;, который имеет свойства объект MyObject.строка, объект MyObject.десятичной, объект MyObject.десятичной, объект MyObject.инт как я могу ввести эти свойства в мой список моих объектов? Вот что у меня есть и некоторые способы, которые я пробовал.

public partial class ShoppingCart : Window
    {
        private List<string> listProductNames = new List<string>();
        private List<decimal> listProductPrices = new List<decimal>();
        private List<decimal> listProductSalesTax = new List<decimal>();
        private List<int> listProductQuantity = new List<int>();
        public List<Product> Cart => new List<Product>();

        public ShoppingCart(Customer c, List<string> lpn, List<decimal> lpp, List<decimal> lpt, List<int> lpq)
        {
            InitializeComponent();
            customer = c;
            listProductNames = lpn;
            listProductPrices = lpp;
            listProductSalesTax = lpt;
            listProductQuantity = lpq;
            CreateCart(listProductNames, listProductPrices, listProductSalesTax, listProductQuantity);
            PopulateListViewCart();
        }

        private void CreateCart(List<string> lpn, List<decimal> lpp, List<decimal> lpt, List<int> lpq)
        {
            selectedProduct = new Product();

            foreach(string name in lpn)
            {
                selectedProduct.ProductName = name;
            }
            foreach(decimal price in lpp)
            {
                selectedProduct.ProductPrice = price;
            }
            foreach(decimal tax in lpt)
            {
                selectedProduct.ProductTax = tax;
            }
            foreach(int quantity in lpq)
            {
                selectedProduct.ProductQuantity = quantity;
            }
            Cart.Add(selectedProduct);
        }
}


Что я уже пробовал:

foreaches настройка prod отдельно и добавление в список

2 Ответов

Рейтинг:
2

Gerry Schmitz

public Product GetProduct( int n ) {

   Product p = new Product();

   p.ProductName = this.listProductNames[ n ];
   // etc.

   return p;
}


TheBigBearNow

Привет всем, извините за поздний ответ. В итоге я использовал список "продукт", который работал, но я только получил его, чтобы загрузить в поле. Я пытаюсь заполнить свойство List<product>, чтобы я мог использовать привязку данных, но я сделал List.Add (), и ничего не было добавлено к моему свойству.

//no longer using my 4 seperate lists because all fields are in my product class.
        private List<Product> listOfP = new List<Product>();
        public List<Product> Cart => new List<Product>();

        public ShoppingCart(Customer c, List<Product> listprod)
        {
            InitializeComponent();
            customer = c;
 
            listOfP = listprod;
            CreateCart(listOfP);
            PopulateListViewCart();
        }
 
private void CreateCart(List<Product> lcart)
        {
  
            //Cart.Add(selectedProduct);
            foreach(Product product in listOfP)
            {
                Cart.Add(product);
            }
        }

Это свойство не заполняется моим listofP, но в моем listofP есть правильные элементы.

Рейтинг:
1

jsc42

Вы пробовали использовать индексы и сопоставлять их друг с другом? напр.

for (int i = 0; i < lpn.Count; i++)
{
    Product selectedProduct = new Product();
    selectedProduct.ProductName = lpn[i];
    selectedProduct.ProductPrice = lpp[i];
    // etc
    Cart.Add(selectedProduct);
}