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

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

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

WPF: DataTemplate עם 2 אפשרויות - היש כזאת חיה?

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

    @avr416

    כמו כן, אם למישהו יש רעיון אחר לשמות של הלשוניות (במקום "חלון 2" וכו') - אשמח!
    תודה רבה!
    אברהם

    אם הבנתי אותך נכון:
    אולי "סימניה"?

    פורסם במקור בפורום CODE613 ב06/06/2016 22:00 (+03:00)

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

      אם אתה רוצה כמו כרום, נראה לי שדיברו ע"ז פעם בפורום.
      אני לא בטוח, אבל נראה לי כאן
      http://code.613m.org/viewtopic.php?f=1&t=128&start=10#p782

      [img:1n5vvxt4]https://camo.githubusercontent.com/1db4439d3bdcc4bb868f2d8046f4f486c08f1212/687474703a2f2f692e696d6775722e636f6d2f713557585768312e676966[/img:1n5vvxt4]

      הנה עוד לינקים:
      https://github.com/sskodje/wpfchrometabs-mvvm
      https://www.nuget.org/packages/WPFChromeTabsMVVM/
      https://www.google.co.il/search?sourceid=chrome-psyapi2&ion=1&ie=UTF-8&q=wpf tab chrome control&oq=wpf tab chrome control&aqs=chrome..69i57.11132j0j7&bav=on.2,or.&bvm=bv.123664746,d.d24&biw=1920&bih=912&dpr=1&ech=1&psi=4clVV8qMJYnvUtyJicAK.1465240033277.3&ei=4clVV8qMJYnvUtyJicAK&emsg=NCSR&noj=1

      פורסם במקור בפורום CODE613 ב06/06/2016 22:11 (+03:00)

      אין טסט כמו פרודקשן.

      המייל שלי urivpn@gmail.com

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

        @רחמים

        יש דבר שנקרא DataTemplateSelector

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

        פורסם במקור בפורום CODE613 ב06/06/2016 22:15 (+03:00)

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

          @avr416

          כמו כן, אם למישהו יש רעיון אחר לשמות של הלשוניות (במקום "חלון 2" וכו') - אשמח!
          תודה רבה!
          אברהם

          שם הספר

          פורסם במקור בפורום CODE613 ב07/06/2016 14:36 (+03:00)

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

            @רחמים

            @רחמים
            יש דבר שנקרא DataTemplateSelector

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

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

            <Button Name="btnDelete" DockPanel.Dock="Right" Margin="2,0,2,0" Padding="0"
               Visibility="{Binding  CloseButtonVisebilty, Converter={StaticResource booleanToVisibilityConverter}}"
               Click="btnDelete_Click"
               CommandParameter="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem}},Path=Name}">
               <Canvas Width="24" Height="24" Background="Transparent">
               <Path Data="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"
                 Fill="{DynamicResource TabControl.Foreground}" />
                 </Canvas>                                          
              </Button>
            

            והנה הקוד של הטאב איטם:

            public class TabItemCustom:TabItem
                {
                    public static readonly DependencyProperty CloseButtonVisebiltyProperty
                        = DependencyProperty.Register("CloseButtonVisebilty", typeof(bool),typeof(TabItemCustom));
            
                    public bool CloseButtonVisebilty
                    {
                        get { return (bool)GetValue(CloseButtonVisebiltyProperty); }
                        set { SetValue(CloseButtonVisebiltyProperty, value); }
                    }
            
                    public TabItemCustom()
                    {
                        CloseButtonVisebilty = true;
                    }
            
                }
            

            והנה של הקונוורטר:

            class BooleanToVisibilityConverter : IValueConverter
                {
                    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
                    {
                        bool boolValue = (bool)value;
                        if (boolValue)
                        {
                            return Visibility.Visible;
                        }
                        else
                        {
                            return Visibility.Collapsed;
                        }
                    }
            
                    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
                    {
                        throw new NotImplementedException();
                    }
                }
            

            סליחה אם משהו מיותר.. פשוט אין לי מושג איפה הבעיה..

            תודה רבה מראש!!
            אברהם

            פורסם במקור בפורום CODE613 ב07/06/2016 22:02 (+03:00)

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

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

              פורסם במקור בפורום CODE613 ב07/06/2016 22:27 (+03:00)

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

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

                Visibility="{Binding CloseButtonVisebilty, RelativeSource={RelativeSource AncestorType={x:Type local:TabItemCustom}}}"
                

                ואכן זה עובד!!

                2016-06-07.png

                תודה רבה!!

                ClickOne - תודה רבה על כל הקישורים שהבאת!! למדתי מהם המון!!
                במיוחד מצאתי כאן אחד שעושה פרוייקט נהדר של עיצובים חדשניים לWPF.

                פורסם במקור בפורום CODE613 ב07/06/2016 22:33 (+03:00)

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

                  אם תלך לשאלות הראשונות בפורום זה היה על פקד טאבים בWPF.
                  הפורום הכיל אז 4 משתמשים...

                  פורסם במקור בפורום CODE613 ב08/06/2016 01:01 (+03:00)

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

                    @דוד ל.ט.

                    הפורום הכיל אז 4 משתמשים...

                    לאן נעלם שמואל? :lol:

                    פורסם במקור בפורום CODE613 ב08/06/2016 14:43 (+03:00)

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

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

                      פורסם במקור בפורום CODE613 ב08/06/2016 18:05 (+03:00)

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

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

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

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