דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. הוספת מרחב שמות ע"י using

הוספת מרחב שמות ע"י using

מתוזמן נעוץ נעול הועבר ארכיון code613m
12 פוסטים 3 כותבים 779 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • A מנותק
    A מנותק
    avr416
    כתב ב נערך לאחרונה על ידי
    #3

    תודה רבה רבה על התשובה!!

    אם אני מבין נכון: יש לך solution עם פרוייקט מתפללים ופרוייקט חלונאי של WPF. עשית refernce מהWPF למתפללים. בנתיים הכל מעולה, ולכתחילה. רק שאתה נתקל בשגיאה. אנא פרט השגיאה.

    כן, אתה מבין נכון. אני לא מקבל הודעת שגיאה, אלא פשוט הויזואל סטודיו (2013) לא מזהה את המחלקה שלי. לכן, כשאני מנסה ליצור מופע שלה זה מסמן לי בקו אדום מתחת..
    אם הבנתי אותך נכון, אז אין צורך להשתמש בusing? כשניסיתי להשתמש בו ולהפנות למחלקה שלי הוא גם סימן לי בקו אדום.. וגם עכשיו כשאני מנסה בלי.. האם אני צריך להגדיר refernce במפורש בקוד (חוץ מלעשות refernce דרך התוכנה)? אם כן, כיצד?

    האופציה השניה והמומלצת בד"כ זה עבודה עם Binding. בדרך זו נותנים באיזה שהוא אופן לDataContext של אלמנט ב"עץ" של התצוגה את האובייקט שלך, נניח מתפלל חדש. כעת כל מאפיין של אלמנט כמו Text של TextBox ניתן ל"איגוד" למאפיין של המחלקה מתפלל ע"י ביטוי Binding.

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

    avr416 כתב:
    כמו כן, ראיתי שבwin form יש לו אפשרות ליצור אוטומטית תפריט סטנדרטי של תוכניות וינדוס, האם גם בWPF יש דבר כזה? (לא מצאתי..)

    לא יודע בדיוק למה אתה מתכוון, כנראה שאין את זה בWPF.

    אני מתכוון שבwin form אתה יכול לבחור מהtollboxs אובייקט מסוג: MenuStrip
    ואח"כ ללחוץ עליו עם הכפתור הימני של העכבר ולבחור insert standart items:

    insert.png
    וזו התוצאה שמתקבלת:

    standart items.png
    לא מצאתי דבר כזה בWPF..

    ושוב, שכוייח על התשובה המפורטת והמושקעת!!

    פורסם במקור בפורום CODE613 ב25/05/2015 21:13 (+03:00)

    תגובה 1 תגובה אחרונה
    0
    • A מנותק
      A מנותק
      avr416
      כתב ב נערך לאחרונה על ידי
      #4

      בהמשך לתוכנה הנ"ל:
      כתבתי את הקוד הבא לכפתור הוסף מתפלל:

      private void הוסףמתפלל_Click(object sender, RoutedEventArgs e)
              {
                
                var worships = new List<WorSh>();
      
                worships[1] = new WorSh();
                     worships[1].FirstName = firstName.Text;
                     worships[1].LastName = lastName.Text;
                     worships[1].Adress = adress.Text;        
                  
                  Close();
      

      כשאני לוחץ על הכפתור התוכנה קורסת..
      בdeubg הוא זרק לי את החריגה: System.ArgumentOutOfRangeException
      על השורה בה אני מציב עצם מסוג מתפלל בליסט של מתפללים:

      worships[1] = new WorSh();
      

      מדוע? האם list אינו יכול להכיל עצמים?
      אם כן, כיצד אני יכול לכתוב קוד שכל פעם שלוחצים על הכפתור הוא יצור לי עצם חדש מהמחלקה של המתפללים ויזין לתוכו את הערכים? כי אני צריך שכל פעם הוא יצור עצם בשם אחר, ולא יקרא לכולם באותו שם.. (גם הקוד שלי כרגע לא מועיל.. חשבתי להשתמש בליסט, ולהציב ל worships[worships.count] את הערכים, כך שכל פעם יווצר איבר חדש ברשימה.. אבל התוכנה קורסת לי עוד קודם לכן...)
      תודה רבה!

      פורסם במקור בפורום CODE613 ב26/05/2015 10:14 (+03:00)

      תגובה 1 תגובה אחרונה
      0
      • S מנותק
        S מנותק
        softs
        כתב ב נערך לאחרונה על ידי
        #5

        @avr416

        פשוט הויזואל סטודיו (2013) לא מזהה את המחלקה שלי.

        האם היא public?
        אגב גם כשיש פס אדום הוא אומר מה השגיאה בחלון Errors למטה או בריחוף עכבר
        @avr416

        בdeubg הוא זרק לי את החריגה: System.ArgumentOutOfRangeException

        בכדי להוסיף לרשימה איברים צריך להשתמש במתודה Add ואז אפשר גם לפנות אליהם לפי אינדקס
        פרט לכך האינדקס מתחיל מאפס (zero based)

        var worships = new List<WorSh>();
         
                  worships.Add(new WorSh());
                  worships[0].FirstName = firstName.Text;
                  worships[0].LastName = lastName.Text;
                  worships[0].Adress = adress.Text;
        

        פורסם במקור בפורום CODE613 ב26/05/2015 11:20 (+03:00)

        תגובה 1 תגובה אחרונה
        2
        • A מנותק
          A מנותק
          avr416
          כתב ב נערך לאחרונה על ידי
          #6

          תודה רבה על התגובה!

          האם היא public?
          אגב גם כשיש פס אדום הוא אומר מה השגיאה בחלון Errors למטה או בריחוף עכבר

          כן, היא מוגדרת כpublic.
          ההודעה היא:

          שגיאה.png

          בכדי להוסיף לרשימה איברים צריך להשתמש במתודה Add ואז אפשר גם לפנות אליהם לפי אינדקס

          תיקנתי את הקוד.. אבל כשאני מנסה להשתמש באינדקס הוא שוב זורק לי את החריגה הנ"ל
          System.ArgumentOutOfRangeException

          הקוד הוא:

          var worships = new List<WorSh>();
          
                    worships.Add(new WorSh());
          
                    if (worships.Count > 0)
                    {
                        worships[worships.Count].FirstName = firstName.Text;
                        worships[worships.Count].LastName = lastName.Text;
                        worships[worships.Count].Adress = adress.Text;
                    }
                      else
                    {
                        worships[0].FirstName = firstName.Text;
                        worships[0].LastName = lastName.Text;
                        worships[0].Adress = adress.Text;
                    }
          

          הסבר על מטרת הקוד:
          אני רוצה שכל פעם שישתמשו בחלון זה יצור משתמש חדש, ויזין אליו את הנתונים. ולא שהוא יצור משתמש חדש אך יזין את הנתונים לworship[0] ..
          לכן, בהנחה שא"א להריץ את הcount כשאין איברים בLIST.. אני בודק ע"י הcount מה מספר האיברים ואם אין הוא מציב את הנתונים באיבר הראשון, ואם יש הוא מציב באיבר הריק הראשון [worships.count] בהנחה שאם יש 6 איברים לדוגמא, אז האחרון הוא מספר 5 (כי הראשון 0)..
          למה זה לא עובד?? מה הבעיה??
          אני כבר מתחיל להתייאש.. כל פעם משהו אחר לא עובד 🙂
          ותודה לכולם על הזמן שאתם משקיעים בי, ועל כך שאתם סובלים את השאלות שלי..

          פורסם במקור בפורום CODE613 ב26/05/2015 15:35 (+03:00)

          תגובה 1 תגובה אחרונה
          0
          • S מנותק
            S מנותק
            softs
            כתב ב נערך לאחרונה על ידי
            #7

            @avr416

            כן, היא מוגדרת כpublic.

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

            @avr416

            בהנחה שא"א להריץ את הcount כשאין איברים בLIST..

            הנחה שגויה הוא פשוט יחזיר 0

            @avr416

            למה זה לא עובד?? מה הבעיה??

            count מחזיר מספר שלא על בסיס 0 לכן בכדי לגשת לאחרון צריך להפחית ממנו 1

            worships.Add(new WorSh());
                   
            worships[worships.Count-1].FirstName = firstName.Text;
            worships[worships.Count-1].LastName = lastName.Text;
            worships[worships.Count-1].Adress = adress.Text;
            

            או (יותר טוב)

            WorSh worsh = new WorSh();
            
            worsh.FirstName = firstName.Text;
            worsh.LastName = lastName.Text;
            worsh.Adress = adress.Text;
            worships.Add(worsh);
            

            @avr416

            אני כבר מתחיל להתייאש.. כל פעם משהו אחר לא עובד 🙂

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

            פורסם במקור בפורום CODE613 ב26/05/2015 16:43 (+03:00)

            תגובה 1 תגובה אחרונה
            2
            • A מנותק
              A מנותק
              avr416
              כתב ב נערך לאחרונה על ידי
              #8

              תודה רבה! עשיתי כעצתך ואכן זה עובד..
              הגדרתי את הLIST של המתפללים תחת הכותרת של הwindow ולא תחת האירוע של הclick
              כיון שאינני רוצה שכל לחיצה על הכפתור תיצור רשימת מתפללים חדשה, אלא סה"כ תוסיף עצם חדש לרשימה קיימת.
              נהגתי נכון?

              הפתרון היחיד הוא להעלות את ה solution לכאן ואז נוכל לבדוק.

              מה הכוונה להעלות אותו לכאן? את הקבצים שלו? את צילום המסך שלו?

              שאלה נוספת: מה ההבדל בין window לבין page בWPF? כלומר, מדוע להוסיף חלון חדש כדי להזין לתוכו מתפללים, ולא להוסיף עמוד חדש (ניסיתי להשתמש בpage ולא הצלחתי למצוא את הפקודה show שלו..)

              פורסם במקור בפורום CODE613 ב26/05/2015 22:21 (+03:00)

              תגובה 1 תגובה אחרונה
              0
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                כתב ב נערך לאחרונה על ידי
                #9

                @avr416

                כיון שאינני רוצה שכל לחיצה על הכפתור תיצור רשימת מתפללים חדשה, אלא סה"כ תוסיף עצם חדש לרשימה קיימת.
                נהגתי נכון?

                בהחלט.

                @avr416

                מה הכוונה להעלות אותו לכאן? את הקבצים שלו? את צילום המסך שלו?

                את הקבצים, כלומר את התיקיה תדחוס ותעלה.
                אבל לפני שאתה טורח בדוק היטב שהכל מוגדר כpublic, כי מסתבר שזה הבעיה. קלאס שכתוב ללא public לפניו אף שהוא לא מצויין כprivate אז הוא internal וזה אומר שא"א לגשת אליו מאסמבלי חיצוני.

                @avr416

                שאלה נוספת: מה ההבדל בין window לבין page בWPF? כלומר, מדוע להוסיף חלון חדש כדי להזין לתוכו מתפללים, ולא להוסיף עמוד חדש (ניסיתי להשתמש בpage ולא הצלחתי למצוא את הפקודה show שלו..)

                page זה עולם אחר. אין לזה show אלא משתמשים בדפדפן כמו frame להצגתו. גם לא מאתחלים אותו עם new אלא פשוט הframe עושה זאת. זה די מסובך לפנות לדף "מבחוץ" ובעצם הגישה של אפליקציה מבוססת דפים היא שהדפים הם עצמאיים לגמרי רק שהם חולקים בדרך כלל מקור נתונים סטטי/משותף.
                קצת סיפור, בעיקר בגלל שאני לא מכיר את זה טוב 🙂 :(.

                פורסם במקור בפורום CODE613 ב27/05/2015 11:01 (+03:00)

                • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                תגובה 1 תגובה אחרונה
                2
                • A מנותק
                  A מנותק
                  avr416
                  כתב ב נערך לאחרונה על ידי
                  #10

                  אבל לפני שאתה טורח בדוק היטב שהכל מוגדר כpublic, כי מסתבר שזה הבעיה. קלאס שכתוב ללא public לפניו אף שהוא לא מצויין כprivate אז הוא internal וזה אומר שא"א לגשת אליו מאסמבלי חיצוני.

                  אכן כן, זו הייתה הבעיה!! הוספתי public לפני הגדרת המחלקה והכל בא על מקומו בשלום..
                  כבר כמעט התייאשתי והעתקתי את כל המחלקות הללו למחלקות חדשות בתוך פרוייקט הWPF..
                  שכויח עצום!! :smile: :smile: :smile:
                  כבר הייתי בטוח שהתוכנה שלי מקולקלת.. (או שאני מקולקל :lol: )

                  page זה עולם אחר. אין לזה show אלא משתמשים בדפדפן כמו frame להצגתו. גם לא מאתחלים אותו עם new אלא פשוט הframe עושה זאת. זה די מסובך לפנות לדף "מבחוץ" ובעצם הגישה של אפליקציה מבוססת דפים היא שהדפים הם עצמאיים לגמרי רק שהם חולקים בדרך כלל מקור נתונים סטטי/משותף.

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

                  פורסם במקור בפורום CODE613 ב27/05/2015 19:37 (+03:00)

                  תגובה 1 תגובה אחרונה
                  0
                  • dovidD מנותק
                    dovidD מנותק
                    dovid ניהול
                    כתב ב נערך לאחרונה על ידי
                    #11

                    המשך ככה, אתה עושה פה סוף סוף מצב רוח...

                    @avr416

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

                    חלונאי לגמרי רק בסגנון אינטרנטי. במקום להקפיץ חלון אתה מחליף את הפאנל שמול המשתמש.

                    פורסם במקור בפורום CODE613 ב27/05/2015 21:05 (+03:00)

                    • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                    • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                    תגובה 1 תגובה אחרונה
                    1
                    • A מנותק
                      A מנותק
                      avr416
                      כתב ב נערך לאחרונה על ידי
                      #12

                      חלונאי לגמרי רק בסגנון אינטרנטי. במקום להקפיץ חלון אתה מחליף את הפאנל שמול המשתמש.

                      כלומר לא צריך שהתוכנה תרוץ על דפדפן כדי להשתמש בזה?
                      ככה רוב האפליקציות היום עובדות? לא?
                      אז כדאי לי ללמוד איך להשתמש בזה.. :lol:

                      פורסם במקור בפורום CODE613 ב27/05/2015 22:46 (+03:00)

                      תגובה 1 תגובה אחרונה
                      0

                      בא תתחבר לדף היומי!
                      • התחברות

                      • אין לך חשבון עדיין? הרשמה

                      • התחברו או הירשמו כדי לחפש.
                      • פוסט ראשון
                        פוסט אחרון
                      0
                      • דף הבית
                      • קטגוריות
                      • פוסטים אחרונים
                      • משתמשים
                      • חיפוש
                      • חוקי הפורום