עבור לתוכן

רשימה נפתחת עם ערים+רחובות c#

Featured Replies

פורסם
  • מחבר

?

פורסם

לא יודע איזה אירוע, יש כל מיני, תשחק עם זה.

https://msdn.microsoft.com/en-us/library/system.windows.forms.combobox_events(v=vs.110).aspx

בטח SelectedIndexChanged או SelectedValueChanged.

הקוד נראה תקין, אבל כמה הערות:

א. עולה לך כסף להשתמש במשתנים? שמור את שם העיר ושם הרחוב במשנה זמני במקום לשלוף אותם שוב ושוב מתוך ה-xml.

ב. הקוד מניח שהרשומות ב-xml מקובצות לפי שם העיר. זה לא נורא, אבל כן היה אפשר לכתוב קוד יותר רובסטי שלא מניח את זה (תאר לך שעוד שנה מעכשיו אתה מחליט להוריד מחדש את ה-xml, ואז מסתבר שהוא כבר לא ממוין).

ג. לא ברור לי למה אתה צריך את ה-index, אתה יכול לגשת לאיבר האחרון ברשימה באמצעות הפונקציה Last, או ע"י האינדקס list_of_cities.Count-1.

פורסם
  • מחבר

לגבי האירועים - אלו הם האירועים הראשונים שניסיתי, משום מה זה לא עבד, אולי הייתה תקלה בקוד שכתבתי אני אנסה שוב.

לגבי שאר ההערות - אני אתקן את הנקודות הנ"ל.

ולגבי צורת הכתיבה - חשוב לי לדעת עד כמה ברור מה שאני כותב, הבנתי שזה חלק חשוב מהעבודה בתוך צוות.

פורסם

לא צריך את כל השורות הריקות האלה בהערות. אם ההערה היא שורה אחת אז שתישאר שורה אחת, לא צריך שורה ריקה לפני ואחרי. זה גורם לכך שיש לך יותר הערות מקוד והופך את הקוד ללא קריא.

גם לא צריך לכתוב בהערות דברים שהם טריוויאליים. הערה כזו היא מיותרת לחלוטין, כי היא לא מוסיפה כלום:

//increase index by 1
index++;

נערך על-ידי שניצל

פורסם
  • מחבר

זה הקוד שאמור למלאות את הcombobox של הרחובות, לא מצאתי איפה לשים אותו, אז אולי הטעות בו...

 foreach (city_details detail in list_of_cities)
{
if (cityCb.Text == detail.city)
{
foreach (string street in detail.street)
{
streetCb.AutoCompleteCustomSource.Add(street);
}
break;
}
}

פורסם

תשתמש בדיבאגר כדי לראות אם הקוד הזה נקרא בכלל.

חוץ מזה אתה בטוח שאתה משתמש נכון ב-AutoCmopleteCustomSource? (אני לא מכיר את הפיצ'ר הזה, פשוט תוודא שאתה משתמש בו נכון).

פורסם
  • מחבר

הוא לא נותן לי לראות את החלק הזה של הקוד, עד החלק הזה (מרגע שהוא פתח את הפורם, אחרי ההגדרה של כל הtextBox וכו' ומילוי הcombox של הערים') אני יכול לעקוב אחרי כל שורת קוד, ברגע שהוא גמר למלאת את הcomboBox של הערים הוא מעביר את התצוגה לתוכנה שרצה ועד שאני לא לוחץ על אחד הbuttunים הדיבאגר לא חוזר לתצוגת הקוד.

עריכה: הכנסתי את הקוד לאירוע textChanged והכל הסתדר, לא יודע איך עד עכשיו לא שמתי לב לאירוע הזה.

תודה רבה.

- - - תגובה אוחדה: - - -

לא יודע איזה אירוע, יש כל מיני, תשחק עם זה.

https://msdn.microsoft.com/en-us/library/system.windows.forms.combobox_events(v=vs.110).aspx

בטח SelectedIndexChanged או SelectedValueChanged.

הקוד נראה תקין, אבל כמה הערות:

א. עולה לך כסף להשתמש במשתנים? שמור את שם העיר ושם הרחוב במשנה זמני במקום לשלוף אותם שוב ושוב מתוך ה-xml.

ב. הקוד מניח שהרשומות ב-xml מקובצות לפי שם העיר. זה לא נורא, אבל כן היה אפשר לכתוב קוד יותר רובסטי שלא מניח את זה (תאר לך שעוד שנה מעכשיו אתה מחליט להוריד מחדש את ה-xml, ואז מסתבר שהוא כבר לא ממוין).

ג. לא ברור לי למה אתה צריך את ה-index, אתה יכול לגשת לאיבר האחרון ברשימה באמצעות הפונקציה Last, או ע"י האינדקס list_of_cities.Count-1.

א ו- ג תוקנו.

א- הוספתי משתנה currentCity שיחזיק את שם העיר כך שיקראו אותה מהקובץ רק פעם אחת, את שם הרחוב ממילא קוראים רק פעם אחת אז לא יצרתי לו משתנה מיוחד.

ג- שיניתי לlist_of_city.Count-1.

את ההערות שיניתי כמו שכתבת.

רק את הקריאה מהקובץ xml אני לא יודע איך לכתוב, אם אני לא יודע איך הקובץ בנוי איך אני אמור לקרוא אותו ולאיפה?

נערך על-ידי eido300

  • 2 שבועות מאוחר יותר...
פורסם
  • מחבר

?

פורסם
  • מחבר

ב. הקוד מניח שהרשומות ב-xml מקובצות לפי שם העיר. זה לא נורא, אבל כן היה אפשר לכתוב קוד יותר רובסטי שלא מניח את זה (תאר לך שעוד שנה מעכשיו אתה מחליט להוריד מחדש את ה-xml, ואז מסתבר שהוא כבר לא ממוין).

איך אני כותב (היום) קוד שייקרא קובץ xml שאני יוריד בהמשך, הרי אני כיום לא יודע איך הקובץ יהיה בנוי?

פורסם

אני לא אומר שיחליפו את כל המבנה של ה-xml. אני רק אומר שכרגע אתה מניח שהוא ממויין לפי שמות הערים.

תאר לך שמלכתחילה ה-xml לא ממויין לפי שמות הערים.

פורסם
  • מחבר

אני לא מצליח לחשוב על כיוון איך לעשות משהו שיתאים לכמה מצבים בלי לעשות שינויים בקוד.

ואם כן אצטרך לעשות שינויים למה לא להשאיר את הקוד כמו שהוא ומקסימום אחר כך לשנות אותו, הרי ממילא אני אצטרך לשנות?

פורסם
  • מחבר

?

פורסם
  • מחבר

אתה מתכוון שבמקום לקרוא 'תג' ספציפי כמו street_name אני פשוט אעבור עליהם עם childnodes[];?

נערך על-ידי eido300

פורסם
  • מחבר

?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים