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

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

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

WPF DataGrid - קיבוע שורה נבחרת בראש ה DataGrid

מתוזמן נעוץ נעול הועבר ארכיון code613m
9 פוסטים 3 כותבים 542 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • T מנותק
    T מנותק
    tchayim
    כתב ב נערך לאחרונה על ידי
    #1

    יש לי ComboBox שהטמפלט של האייטמס הוא DataGrid.
    ובכן, במידה ונבחרה ערך מסויים (שהוא בעצם ערך מתוך ה DataGrid), אני רוצה שהערך הזה יהיה בראש ה DataGrid, ואז כשהמשתמש יפתח את הרשימה (Combobox), הוא מיד יראה את הערך מודגש ובראש ה DataGrid.

    להלן הקוד שקודדתי ב- ComboBox ע"מ שיתבצע בטעינת ה DataGrid שבתוך ה ComboBox:

    Private Sub DataGrid_Loaded(sender As DataGrid, e As RoutedEventArgs) Handles DataGrid.Loaded
                If Me.SelectedItem Is Nothing Then Exit Sub
                DataGrid.SelectedItem = SelectedItem
                Dim sv = sender.FindVisualChild(Of ScrollViewer)
                If sv IsNot Nothing Then sv.ScrollToEnd()
                DataGrid.ScrollIntoView(SelectedItem)
                sender.Focus()
            End Sub
    

    [u:fre0wxnl]אסביר קצת על הקוד:[/u:fre0wxnl]
    בתחילה (שורה 3) אני קובע שהרשומה הנבחרת ב DataGrid תהיה הערך הנבחר ב ComboBox.
    לאחר מכן (שורה 4,5) אני מחפש את ה ScrollViewer ואני מגלגל אותו לסוף ה DataGrid (בהמשך אסביר למה אני צריך את זה).
    אח"כ (שורה 6) אני מדפדף ל רשומה הנבחרת.
    אח"כ (שורה 7) אני מעביר את הפוקוס ל DataGrid כדי שהרשומה הנבחרת תהיה מספיק מודגשת (כאשר זה לא בפוקוס, הרשומה הנבחרת לא מודגשת מספיק).
    הסיבה שהייתי צריך לגלגל את ה Scriller לסוף הDataGrid, שאם לא כן, הדפדוף לרשומה הנבחרת לא מביא אותו לראש ה DataGrid, אלא רק עש שהוא נראה, ולכן אם הוא מגיע מהסוף אז הוא נשאר בראש הרשימה.

    הבעייה היא שהקוד השזה לא תמיד עובד, זאת אומרת - לעתים קרובות הדפדוף עד הסוף עובד, אבל הדפדוף לרשומה הנבחרת לא עובד. לא הצלחתי להבין את הסיבה.

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

    פורסם במקור בפורום CODE613 ב28/12/2016 14:12 (+02:00)

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

      משהו לא מובן פה:
      @tchayim

      יש לי ComboBox שהטמפלט של האייטמס הוא DataGrid.

      משמע שכל פריט בקומבו הוא דטה גריד שלם

      @tchayim

      ובכן, במידה ונבחרה ערך מסויים (שהוא בעצם ערך מתוך ה DataGrid)

      כאן משמע שכל פריט בקומבו הוא פריט בדטה גריד כלשהוא

      אולי התכוונת שהאייטמס-סורס של הקומבו זה האייטמס-סורס של הדטה גריד?

      פורסם במקור בפורום CODE613 ב28/12/2016 15:28 (+02:00)

      תגובה 1 תגובה אחרונה
      0
      • T מנותק
        T מנותק
        tchayim
        כתב ב נערך לאחרונה על ידי
        #3

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

        פורסם במקור בפורום CODE613 ב28/12/2016 16:01 (+02:00)

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

          אם תוכל לצרף ז'אמל קצר איך נראה הקומבו עם כל הדטה גריד שבתוכו זה יעזור להבין

          פורסם במקור בפורום CODE613 ב28/12/2016 16:37 (+02:00)

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

            אני גם תוהה איך מימשת את הDataGrid. הItemContainerStyle מיועד לקסטם איבר בודד, לא את פאנל האיברים.

            פורסם במקור בפורום CODE613 ב28/12/2016 18:37 (+02:00)

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

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

            תגובה 1 תגובה אחרונה
            0
            • T מנותק
              T מנותק
              tchayim
              כתב ב נערך לאחרונה על ידי
              #6

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

              פורסם במקור בפורום CODE613 ב28/12/2016 23:59 (+02:00)

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

                מוסבך.
                וניסוח הכותרת שלך בסטאק לא נכון. השאלה צריכה להיות משהו כמו Move Selected Row to top and scroll to it.

                פורסם במקור בפורום CODE613 ב29/12/2016 11:52 (+02:00)

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

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

                תגובה 1 תגובה אחרונה
                0
                • T מנותק
                  T מנותק
                  tchayim
                  כתב ב נערך לאחרונה על ידי
                  #8

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

                  פורסם במקור בפורום CODE613 ב29/12/2016 13:09 (+02:00)

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

                    אכן טוב שהסברת זה לא היה מובן לי
                    תראה פה http://stackoverflow.com/a/1080012/1271037

                    פורסם במקור בפורום CODE613 ב29/12/2016 15:35 (+02:00)

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

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

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

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

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

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