locked
שאלה WPF RRS feed

  • שאלה

  • להלן קוד :

    <Window x:Class="WpfApplication5.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
    
        <StackPanel>
            <TextBlock x:Name="TB" Text="hellow Amiel Cohen" Height="22" />
            <CheckBox x:Name="C_B" IsChecked="False" Content="I Agree" HorizontalAlignment="Left" BorderBrush="Brown" />
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
            <Button Name="OK_b" Content="Ok" HorizontalAlignment="Center" />
                <Button Name="NE_b" Click="NextClick" Content="Next" IsEnabled="{Binding ElementName=C_B,Path=IsChecked }" HorizontalAlignment="Center" /> 
        </StackPanel>
        </StackPanel>
    
    </Window>

    בקוד הזה יש Binding - רק אם הChekBox מסומן , אז מתאפשר ללחוץ על הכפתור NextClick . 

    אני שואל: כדי לבצע את הקשירה הזו  כתבתי את   IsEnabled="{Binding ElementName=C_B,Path=IsChecked } . את המאפיין IsChecked - הייתי צריך להביא בעצמי מאיזשהו מקום, לא הייתה שם שום השלמה אוטומטית .  

    א. האם יש לזה השלמה אוטומטית ? 

    ב. אם לא, איפה אני יכול לראות את כל האירועים ? 

    אם אפשר לענות לי בצורה ממש פשוטה, אני מתחיל , ואני לא מבין את כל המונחים . 

    לאלעד.. לא הבנתי איך מיישרים את הטקסט שמאלה . 


    • נערך על-ידי Elad R Katz יום רביעי 25 אפריל 2012 14:02 סידור קוד
    יום רביעי 25 אפריל 2012 12:37

תשובות

  • הי עמיאל,

    כפי ש 'slave of the mind' כתב, VS2010 לא יודע להשלים את זה אוטומאטית. אם אני לא טועה רישרפר כן יודע לעשות את זה, אבל אני לא בטוח (לא מותקן לי כרגע על המחשב בשביל לבדוק).

    יחד עם זאת, יש ל VS2010 אחלה פיצ'ר שמאוד עוזר בזה ושלצערי לא הרבה מכירים/משתמשים בו. הדרך הכי טובה להראות לך זה פשוט להדגים, אז יצרתי סרטון הדגמה בשביל זה, שתוכל לראות כאן

    ------

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


    http://blogs.microsoft.co.il/blogs/eladkatz @ElatKt

    • סומן כתשובה על-ידי עמיאל כהן יום ראשון 29 אפריל 2012 05:02
    יום רביעי 25 אפריל 2012 15:35

כל התגובות

  • א. לא

    ב. זה לא אירוע, שים לב שbinding מתחבר למעשה לשינוי בproperty (מאפיין) כלשהו, במקרה הזה אתה מאזין לשינוי במאפיין IsChecked.

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

    מקווה שעזר


    sainity is overrated

    יום רביעי 25 אפריל 2012 12:46
  • הי עמיאל,

    כפי ש 'slave of the mind' כתב, VS2010 לא יודע להשלים את זה אוטומאטית. אם אני לא טועה רישרפר כן יודע לעשות את זה, אבל אני לא בטוח (לא מותקן לי כרגע על המחשב בשביל לבדוק).

    יחד עם זאת, יש ל VS2010 אחלה פיצ'ר שמאוד עוזר בזה ושלצערי לא הרבה מכירים/משתמשים בו. הדרך הכי טובה להראות לך זה פשוט להדגים, אז יצרתי סרטון הדגמה בשביל זה, שתוכל לראות כאן

    ------

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


    http://blogs.microsoft.co.il/blogs/eladkatz @ElatKt

    • סומן כתשובה על-ידי עמיאל כהן יום ראשון 29 אפריל 2012 05:02
    יום רביעי 25 אפריל 2012 15:35
  • שלום עמיאל,

    VS XAML Designer לא יודע להשלים אוטומטית ביטויי Binding מורכבים מאחר שזה מבוסס על Reflection ולכן ה- Parsing מורכב.

    מה שכן אתה יכול להשתמש ב:

    1. Visual Studio Properties View. תבחר את ה- Property הרלוונטי ותלחץ על Binding.
    2. אפשר גם לעבוד עם Microsoft Expression Blend שנותן תמיכה מעולה ל- Data Binding ו- Sample Data.
    3. למתחילים, מומלץ בחום להתקין http://www.jetbrains.com/resharper, הוא פשוט עושה חיי XAML קלים.
    4. ניתן למצוא אינפורמציה נוספת ב- http://msdn.microsoft.com/en-us/library/system.windows.data.binding.aspx.

    בהצלחה,

    http://blogs.microsoft.co.il/blogs/tomershamam


    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    יום שישי 27 אפריל 2012 06:26
    מנחה דיון
  • מה אני אומר לך , הסרטון שלך שווה יותר מאלף מילים .

    יום ראשון 29 אפריל 2012 05:02
  • שאלה טובה גורמת לפוסטים טובים בבלוג :-)

    http://blogs.microsoft.co.il/blogs/eladkatz @ElatKt

    יום ראשון 29 אפריל 2012 12:21