Loading...
dDim8 avatar dDim8 0 Точки

Windows Form - Запитване..

ModEdit: Моля, прочетете правилата на форума преди да пускате нова тема.

Здравейте,

Бих искала да помоля за малко помощ, а проблема в общи линии е следният:

http://pastebin.com/qKmWmCrG

В общи линии идеята ми е от form1 да извличам данните, като ги мятам на класа Data, който да ги пази в List<>. Като цяло програмата работи, но когато въведа повече от един обект, в колекцията ми пази броя на обектите, които съм въвела (примерно два), но данните се презаписват(най-вероятно) и двата обекта са със едини и същи стойности (последните поддадени).

Целта на занятието е, че като ги пазя динамично после ще ми е по-лесно да ги обработвам, тъй като на по-късен етап ще се наложи да търся елементи от обекта, спрямо присъствието или отсъствието на други елементи. 

Също така ми се иска да мога да работя с данните само и единствено в клас Data, като в останалите форми, да извиквам само функции от класа и другите форми да съдържат само валидации. 

Другото, което е, този ред:

objData.AddDataToCollection(objData); 

не знам дали трябва да е баш така, но дори и да създам друг обект от класа, резултата е същият.

Търсих доста, но за съжаление не успях да се ориентирам, кой знае колко. Дали въобще начина, по който съм структорирала нещата е правилен, или ? Също така дали проблема не е във взимането на данните? 

Много ще съм благодарна, ако някой ми разясни, къде бъркам, тъй като за съжаление нямам времето да чета по-задълбочено(бяха ми споменали за Data Building и за използване на Interface), а ми се иска да го разбера. 

Благодаря предварително и поздрави.

Тагове:
0
Programming Basics 27/01/2015 13:27:23
Valleri avatar Valleri 304 Точки

Забелязва се че класа, който се използва за "Датабаза" е същия клас, който представлява обекта. Тоест, всеки създаден обект от теб, чрез формата, ще има в него колекция от "Data". Получава се някакъв матрйошка ефект и аз лично бих създал просто една колекция (List, Set...) в Form1 и там бих добавял "Data" обекти, за този прост пример отделен клас за "Датабаза" е излишен според мен.

п.с. Наименоването на променливи е объркващо, нормално е да трудна ориентациата из кода. Замени "Data" с някакъв обект от реалния свят и ще си представиш по-добре нещата. 

0
27/01/2015 11:45:06
dDim8 avatar dDim8 0 Точки

Здрасти,

Това да създам List във form1, с тип данни - обектите от класа - също го направих. (Ако правилно съм те разбрала). Също така опитах да сложа обектите да са във form1, както и листа и да ги подавам List на клас Data, като аргумент на фунция. И там нещо го обърках. 

Попринцип си прав, че не е нужно от класа Data, Но проекта е такъв, че ще трябва с тази дата да работя във друга форма. Т.е. тук във form1, аз въвеждам информация, а в друга форма реално аз ще работя с данните. 

И тъй като не съм особено запозната, реших, че това ще е "най-лесният" начин, по който мога да работя с информацията. Т.е. тя си стои в клас Data, вътре в класа си работя с информацията и резултатите само ги викам в различните форми. 

Поздрави.

0
Valleri avatar Valleri 304 Точки

Щом е проект и ще работиш с данните и в други форми си направи един клас Product или какъвто е обекта на проекта ти и той ще представлява въпросния предмет. След това един static class, който да съхранява обектите и вече в самите форми си създаваш new Product(name, currency, value) и после с статичния клас казваш - ProductDatabase.AddProduct(newProduct).

Иначе е много объркващо...по грешка можеш да въведеш Product в друг Product и т.н.

1
dDim8 avatar dDim8 0 Точки

Много, много благодаря за помоща. 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.