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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
dovidD

dovid

@dovid
ניהול
אודות
פוסטים
10.1k
נושאים
182
קבוצות
2
עוקבים
32
עוקב אחרי
0

פוסטים

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

  • WPF DataGrid עם AutoGenerateColumns שורה חדשה כשהרשימה ריקה.
    dovidD dovid

    אנא העלה את הXAML ו/או קוד רלוונטי.

    פורסם במקור בפורום CODE613 ב24/12/2013 17:11 (+02:00)


  • WPF DataGrid עם AutoGenerateColumns שורה חדשה כשהרשימה ריקה.
    dovidD dovid

    איך הגדרת את הItemSource, למערך?
    אם כן נסה במקום זאת לשים בו List גנרי (עם סוגריים והמילה Of).

    פורסם במקור בפורום CODE613 ב24/12/2013 16:49 (+02:00)


  • WPF קומבו עם השלמה אוטומטית
    dovidD dovid

    IsEditable = True
    אם אני זוכר טוב.
    הקישור שלך זה סינון לא רק השלמה, בד"כ לא רוצים/צריכים את זה.

    פורסם במקור בפורום CODE613 ב24/12/2013 11:58 (+02:00)


  • קוד לגימטריה ב javascript / Hebrew Gematriah code in js
    dovidD dovid

    רק עכשיו קלטתי שהפונקציה של magicode היא ממספר לטקסט.
    זה מה שארכיטקט רצה?

    פורסם במקור בפורום CODE613 ב24/12/2013 12:43 (+02:00)


  • קוד לגימטריה ב javascript / Hebrew Gematriah code in js
    dovidD dovid

    גם אני התכוונתי אליהם,
    אם אתה מתכוון לזה שהוא שרשר במקום לכתוב ברצף הוא יכל לכתוב "הי" במקום שרשור, וכן למה ב"יו" יש בעיה.

    פורסם במקור בפורום CODE613 ב23/12/2013 23:09 (+02:00)


  • קוד לגימטריה ב javascript / Hebrew Gematriah code in js
    dovidD dovid

    @רחמים

    [ואפי' הקפדת על שם השם שלא יופיע אפי' שזה רק על המסך.]

    לא בגלל ההקפדה אלא בשביל לא לקבל תוצאה שגוייה.

    פורסם במקור בפורום CODE613 ב23/12/2013 22:24 (+02:00)


  • קוד לגימטריה ב javascript / Hebrew Gematriah code in js
    dovidD dovid

    למה המתודות בקוד האחרון מוגדרות לאובייקט במקום מחרוזת או תו?

    פורסם במקור בפורום CODE613 ב23/12/2013 21:05 (+02:00)


  • Wpf Combobox itemsource
    dovidD dovid

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

    פורסם במקור בפורום CODE613 ב23/12/2013 13:06 (+02:00)


  • Wpf Combobox itemsource
    dovidD dovid

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

    תשתמש בשתי קולקשיין ויו.

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


  • הקצאת דומיין
    dovidD dovid

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

    המחיר משתנה בין הTop-Doamin: למשל co.il יקר יחסית, com בינוני, וnet זול. יש עוד יותר זולים (כל מיני ארצות נשכחות) ואפי' חינמיים מידי פעם.
    טווח המחיר הוא בד"כ 50 ש"ח+- לשנתיים.

    פורסם במקור בפורום CODE613 ב22/12/2013 19:42 (+02:00)


  • WPF לחצן '+' בראש שורה בדטה-גריד
    dovidD dovid

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

    פורסם במקור בפורום CODE613 ב25/12/2013 19:50 (+02:00)


  • WPF לחצן '+' בראש שורה בדטה-גריד
    dovidD dovid

    @רחמים

    תודה רבה זה מצויין,

    יש לי שתי שאלות לגבי הלחצן שבראש השורה:

    1. איך אפשר להגדיר שאם הלחצן בשורה האחרונה של הדטה-גריד שבכפתור יהיה כתוב '*' במקום '+' כיון שזו שורה שמיועדת ליצירת שורה חדשה ולא שייך לפתוח שם גליון משנה.

    2. איך אפשר לעשות שהלחצן עם ה '+' ישאר תמיד למעלה וכמו שכבר שאלתי באשכול אחר, ולא ירד תמיד לאמצע.

    לגבי טפלט שונה לכל שורה בשביל ה RowDetailsTemplate, זה הרבה יותר מורכב, כיון שב RowDetailsTemplate אני צריך לדחוף גליון נתונים שזה פקד שלם שמקבל בבנאי שלו פרמטר של "טבלה גנארית OF TRecord" וגם צריך להגדיר שהגליון הזה הוא משנה ולא ראשי ולפי איזה ID הוא יציג את השורות.
    אבל ישתבח שמו מצאתי פתרון בשיטה כזו:
    בתוך ה XAML הגדרתי שה RowDetailsTemplate יהיה רק גריד פשוט, ואז בארוע LoadingRowDetails יצרתי מופע של פקד חדש של הגליון נתונים עם כל מה שהוא צריך ואז הוספתי את הפקד לילדים של הגריד הנ''ל, למדתי את זה מכאן.

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

    פורסם במקור בפורום CODE613 ב25/12/2013 19:01 (+02:00)


  • WPF לחצן '+' בראש שורה בדטה-גריד
    dovidD dovid

    כעת לעניין טמפלטים משתנים כל שורה לפי X.
    בWPF יש DataTemplateSelector. שזה מחלקה שמחזירה DataTemplate לפי הטיפוס שהיא מקבלת.

    הדרכה קצרה:
    א. יוצרים טמפלטים לכל סיטואציה במקטע הResource של החלון (הסעיף הזה הוא לא מוכרח רק זה נח וככה עושים בד"כ).

    <DataTemplate x:Key="NormalTemplate">
        <TextBlock Text="{Binding FirstName}" />
    </DataTemplate>
    
    <DataTemplate x:Key="VipTemplate">
        <StackPanel>
            <TextBlock Text="{Binding FirstName}" />
            <TextBlock Text="{Binding LastName}" />
        </StackPanel>
    </DataTemplate>
    

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

    Class SelectTempletByRow
        Inherits DataTemplateSelector
    
        Shared win As MainWindow = Application.Current.MainWindow
    
        Public Overrides Function SelectTemplate(item As Object, container As DependencyObject) As DataTemplate
            If CType(item, Person).LastName = "דוד ל.ט." Then
                Return win.FindResource("VipTemplate")
            Else
                Return win.FindResource("NormalTemplate")
            End If
        End Function
    End Class
    

    כעת מוסיפים למקטע הריסורס של החלון את הלאסס שעשינו:

    <local:SelectTempletByRow x:Key="Selector" />
    

    ומגדירים את המאפיין RowDetailsTemplateSelector של הDataGrid:

    RowDetailsTemplateSelector="{StaticResource Selector}"
    

    קצת מסובך אבל זה עקרונות מתקדמים ונחוצים בWPF, שווה!
    בהצלחה.

    פורסם במקור בפורום CODE613 ב25/12/2013 18:23 (+02:00)


  • WPF לחצן '+' בראש שורה בדטה-גריד
    dovidD dovid

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

    אבל אם כבר אראה לך איך עושים בצורה זאמלית את העסק.
    קודם הקטע עם ה+-:

    <DataGrid.RowHeaderTemplate >
        <DataTemplate>
            <ToggleButton x:Name="btn" IsChecked="{Binding DetailsVisibility, Converter={StaticResource VisToBool}, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGridRow}}}" >
                <ToggleButton.Style>
                    <Style TargetType="{x:Type ToggleButton}" >
                        <Setter Property="Content" Value="+" />
                        <Style.Triggers>
                            <Trigger Property="IsChecked" Value="True">
                                <Setter Property="Content" Value="-" />
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </ToggleButton.Style>
            </ToggleButton>
        </DataTemplate>
    </DataGrid.RowHeaderTemplate>
    

    הקוד הזה עושה שימוש בקונוורטר. Converter זה משהו מאוד שימויש, במקרה של איגוד בין דברים "לא קשורים", כגון בין צבע למספר וכו'.
    הוא נעשה ע"י מופע של קלאס כלשהיא שמממשת את IValueConverter.
    הדרך ליצירת מופעים בxaml הוא פשוט להצהיר על קיומם, ובשביל זה גם צריך לייבא את הNamespace של הפרוייקט הנוכחי משהו כמו:

    <Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfStyle""
        x:Class="MainWindow" Title="MainWindow" Height="350" Width="525">
        <Window.Resources>
            <local:VisToBool x:Key="VisToBool"/>
        </Window.Resources>
    

    בשורה 4 מבוצע ייבוא ניימספייס לפרוייקט הנוכחי.
    בשורה 7 נוצר מופע של קונוורטר.

    הנה הקוד של הקלאס VisToBool:

    Class VisToBool
        Implements IValueConverter
        Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As Globalization.CultureInfo) As Object Implements IValueConverter.Convert
            Return CType(value, Visibility) = Visibility.Visible
        End Function
        Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack
            Return If(CBool(value) = True, Visibility.Visible, Visibility.Collapsed)
        End Function
    End Class
    

    פורסם במקור בפורום CODE613 ב25/12/2013 18:02 (+02:00)


  • WPF לחצן '+' בראש שורה בדטה-גריד
    dovidD dovid

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

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

    פורסם במקור בפורום CODE613 ב22/12/2013 21:06 (+02:00)


  • WPF יצירת עמודת מזהה בדטה-גריד
    dovidD dovid

    במה שכתבתי אודות הקונסטרקטור הסטטי הייתה לי טעות, במקום _id צריך לכתוב שמה (פעמיים בהודעה) inc.

    פורסם במקור בפורום CODE613 ב23/12/2013 19:46 (+02:00)


  • WPF יצירת עמודת מזהה בדטה-גריד
    dovidD dovid

    תהיה בריא.
    לא ניסיתי לשכנע, שים לב.

    פורסם במקור בפורום CODE613 ב23/12/2013 14:18 (+02:00)


  • WPF יצירת עמודת מזהה בדטה-גריד
    dovidD dovid

    @רחמים

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

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

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

    @רחמים

    @דוד ל.ט.
    אבל זה ממש לא פיתרון טוב עבור מסד נתונים, מכמה וכמה סיבות.

    תוכל לפרט בבקשה אני חייב לדעת.

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

    @רחמים

    @דוד ל.ט.
    אם זה ממש מסד, אל תטפל במספור אוטומטי, בשביל מה לך.

    אני חייב שיהיה לי מזהה יחודי לכל רשומה בטבלה

    אם זה כדי שלכל אלמנט יהיה זיהוי, אתה יכול להשתמש בשמו.

    @רחמים

    אלא איך אפשר אחרת?
    @רחמים
    כך שזה מסד לכל דבר רק בלא SQL ובלא דטה-סיט ובלא אקסס.

    פורסם במקור בפורום CODE613 ב23/12/2013 11:31 (+02:00)


  • WPF יצירת עמודת מזהה בדטה-גריד
    dovidD dovid

    @רחמים

    נ.ב
    צריך לתקן בקוד במקום Return ID
    Return _id

    נכון, התבלבלתי.

    לבעיה שכתבת אתה צריך לקבוע את _id (לפי מקור נתוניך) מתוך קונסטרקטור סטטי:

    Shared Sub New()
        'read file from disk
        'and set _id = max + 1
    End Sub 
    

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

    פורסם במקור בפורום CODE613 ב22/12/2013 20:39 (+02:00)


  • WPF יצירת עמודת מזהה בדטה-גריד
    dovidD dovid

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

    Shared inc As Integer
    
    Dim _id As Integer
    Public ReadOnly Property ID
        Get
            Return ID
        End Get
    End Property
    
    Public Sub New()
        _id = inc
        inc += 1
    End Sub
    

    פורסם במקור בפורום CODE613 ב19/12/2013 22:19 (+02:00)

  • 1 / 1
  • התחברות

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

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