תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    חוקי הפורום

    WPF מושגים

    תכנות
    2
    6
    379
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • E
      edenbelosh נערך לאחרונה על ידי

      יש כמה מושגים שלא הבנתי בWPF אם מישהו יכול לעזור לי
      , NotifyOnValidationError, ValidatesOnDataErrors=ValidatesOnExceptions,SelectionChanged ,SelectedValuePath,ItemsSourceDisplayMemberPath

      תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • dovid
        dovid ניהול נערך לאחרונה על ידי dovid

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

        אפשר ליצור קשר dovid@tchumim.com

        תגובה 1 תגובה אחרונה תגובה ציטוט 2
        • E
          edenbelosh נערך לאחרונה על ידי

          אני בונה תוכנית בסיסית בWPF שנה שנייה בלימודים ויש לי ידע בסיסי בפקדים ובתכנות בC# , אני צריכה לעשות בחלון שעד שאני לא בוחרת מהקומבו בוקס איזה משהו אני לא יכולה לגשת לשום פקד אחר ואני צריכה להשתמש במושגים האלה ולא כל כך הבנתי עד הסוף את המשמעות שלהם
          <ComboBox x:Name="UpdateMotherID" HorizontalAlignment="Left" Height="23" Margin="0,4.167,0,6.833"
          SelectedValue="{Binding ID_Mother, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnDataErrors=True, ValidatesOnExceptions=true}"
          SelectionChanged="UpdateMotherID_SelectionChanged"
          VerticalAlignment="Center" Width="120"/>

          this.UpdateMotherID.ItemsSource = bl.GetAllMothers();
          this.UpdateMotherID.DisplayMemberPath = "ID_Mother";
          this.UpdateMotherID.SelectedValuePath = "ID_Mother";

          תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • dovid
            dovid ניהול נערך לאחרונה על ידי dovid

            הבנתי, את יותר מונחית מטרה מאשר מונחית הבנה, אבל זו גם דרך לפעמים.
            בא נדבר על הקומבובוקס. זה פקד שיש בו א. רשימת פריטים, ב. אפשרות לבחור פריט
            האיגוד (Binding) שלו מסובך יותר:
            נניח ישנה רשימת פריטים מסוג Person שזה class עם המון מאפיינים.
            וישנו מאפיין במקום כל שהוא, נקרא לו לשם הדוגמא TheMasterPersonId, שמקבל את התעודת זהות של Person נבחר יחיד.
            בUI יש לנו כמה משימות של Binding:
            א. איגוד פקד הרשימה לרשימת הPerson (בינדינג לItemsSource).
            ב. קביעה איזה מאפיין מתוך המחלקה Person ייבחר כדי להציג את המחלקה (בד"כ נבחר למשל שם משפחה למשל, זה נעשה השמת שם המאפיין לDisplayMemberPath, ללא בינדינג).
            ג. איגוד בין הTheMasterPersonId לבין הפריט הנבחר ברשימה (בינדינג בין הSelectedValue לבין TheMasterPersonId).
            ד. בשביל האיגוד האחרון, צריך לקבוע גם איזה מאפיין מתוך הפריט הנבחר, יש להציב בTheMasterPersonId שהרי אי אפשר להציב בו Person שזו כל המחלקה אלא רק Int שזה מאפיין מתוך המחלקה (זה נעשה ע"י הצבת שם המאפיין הרצוי כסטרינג לתוך SelectedValuePath, ללא בינדינג).

            שימי לב שגם SelectedValuePath וגם DisplayMemberPath מקבלים ערך סטרינג ולא איגוד כל שהוא. והם לא בהכרח נדרשים - בהעידר DisplayMemberPath מבוצעת למחלקה ToString שהרבה פעמים מספיק, ובהעידר SelectedValuePath אפשר לאגוד לSelectedItem שמאגד את כלל האובייקט - כמובן שצריך שמאפיין היעד יהיה מסוג זהה ולא int למשל.

            אפשר ליצור קשר dovid@tchumim.com

            תגובה 1 תגובה אחרונה תגובה ציטוט 2
            • dovid
              dovid ניהול נערך לאחרונה על ידי dovid

              בקשר לולידציה:
              המאפיינים ValidateXX וגם NotifyXX מיועדים לקבוע האם ומתי יבוצע בדיקת תקיפות לנתונים שהוזנו ע"י המשתמש, ואיזה חיווי הוא יקבל על כך.
              אם את חייבת להשתמש בדרך זו, אז תחפשי באינטרנט WPF Validation אבל אם כל מטרתך זה מניעת לחיצת אישור טכנית ללא בחירת איבר מהרשימה, זה ניתן להיעשות באופן גס ע"י סטייל עם טריגר על ריקנותו של המאפיין שאסור שיהיה ריק, והסגנון שמוחל הוא IsEnable=False. ככה אני אישית תמיד עושה, ולכן אני לא מכיר טוב איך עושים לפי הספר...

              אפשר ליצור קשר dovid@tchumim.com

              E תגובה 1 תגובה אחרונה תגובה ציטוט 1
              • E
                edenbelosh @dovid נערך לאחרונה על ידי

                @dovid
                תודה רבה!!!!!!

                תגובה 1 תגובה אחרונה תגובה ציטוט 1
                • הועבר מ תכנות ע"י  dovid dovid 
                • 1 / 1
                • פוסט ראשון
                  פוסט אחרון
                בא תתחבר לדף היומי!