locked
לגבי הוצאת Dependency Properties ממחלקה בצורה גנרית. RRS feed

  • שאלה

  • אני רוצה להוציא בצורה גנרית, את כל ה - Dependency Properties שיש למחלקה.
    ניסיתי למצוא קצת אופציות, אבל לא מצאתי שום דבר מועיל ל - Metro.
    תודה מראש!

    נ.ב. (עריכה)
    אני לא מצליח גם לגשת לשם של ה - Dependency Property, כמו שהיה אפשר לגשת אליו ב - WPF.
    אפשרי בכלל לגשת עכשיו לשם שלו?

    • נערך על-ידי Alex Pshul יום שני 10 ספטמבר 2012 20:20 נ.ב
    יום שני 10 ספטמבר 2012 19:53

תשובות

  • אני חושב שאני מבין למה לא החזיר לי, כי ניסיתי על Button, שהוא בעצם WinRT Component שמן הסתם לא נכתב ב- #C.

    אני מניח שתהיה לך בעייה עם פקדים שלא נכתבו ב- #C.


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


    יום רביעי 12 ספטמבר 2012 20:11
    מנחה דיון

כל התגובות

  • אלא אם קיים helper מיוחד שאני לא מכיר - לדעתי הגישה היא מאוד מוגבלת. כל מה שנראה לי שאפשר לעשות זה לקבל את הערך של פרופרטי ע"י רפלקשן.

    אם נניח רוצים לקבל ערך של "FrameProperty", אז ככה שולפים את זה:

    var propertyValue = RuntimeReflectionExtensions.GetRuntimeProperty(targetType, "Frame");

    • הוצע כתשובה על-ידי Aizikovich Evgeni יום שני 10 ספטמבר 2012 21:27
    יום שני 10 ספטמבר 2012 21:27
  • אולי לא הסברתי את עצמי טוב, או לא הבנתי ל'מה אתה התכוונת...

    יש לי מחלקה שבניתי עם כמה Dependency Property. עכשיו, בצורת Reflection, אני רוצה לעבור על כולם, ועבור על אחד מהם, לשמור בצד את השם שלו במחרוזת.
    פעם, הייתי ניגש ל - Type והייתה לו מתודה GetProperties(), עכשיו אני לא ראיתי את המתודה הזאת..
    יום שלישי 11 ספטמבר 2012 19:19
  • var propertiesNames = typeof(dpo).GetRuntimeProperties().Select(p => p.Name).ToArray();

    זה פתרון אפשרי, שמחזיר את כל ה- Properties.
    לא לשכוח להוסיף:

    using System.Reflection;
    כי זה תוספות ל- type.


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




    יום שלישי 11 ספטמבר 2012 21:32
    מנחה דיון
  • ניסיתי את המתודה שאמרת, היא מחזירה את כל ה - Properties, ולא את ה - Dependency Properties.

    אבל, ניסיתי בכל זאת את ה - GetRuntimeFields(), והוא מחזיר את כל ה - Dependency Properties שאני צריך.
    אחרי זה, אני יכול להוציא את הערך של כל אחד מהם, ע"י מופע המחלקה, והמתודה GetValue.

    בקיצור, מצאתי את מה שרציתי, המון תודה! :)

    יום רביעי 12 ספטמבר 2012 19:55
  • שמח לשמוע ש- Fields חזרו. אצלי משום מה לא עבד. בטח פספסתי משהו :)

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

    יום רביעי 12 ספטמבר 2012 20:01
    מנחה דיון
  • אני עכשיו חפרתי את זה עוד טיפה, הוא מחזיר רשימה של FieldsInfo, שהם מסוג ה - Dependency Properties שאני צריך.
    עכשיו אני מנסה בעזרת זה להוציא את הערכים מהמופע מחלקה.

    יום רביעי 12 ספטמבר 2012 20:04
  • אני חושב שאני מבין למה לא החזיר לי, כי ניסיתי על Button, שהוא בעצם WinRT Component שמן הסתם לא נכתב ב- #C.

    אני מניח שתהיה לך בעייה עם פקדים שלא נכתבו ב- #C.


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


    יום רביעי 12 ספטמבר 2012 20:11
    מנחה דיון
  • זה לא אומר בעצם של - WinRT Component אין Dependency Properties?
    יכול להיות שזה ממומש בעזרת משהו אחר?

    בכל מקרה, זה עזר המון! תודה! :)

    יום רביעי 12 ספטמבר 2012 20:44
  • זה אומר של- WinRT Component יש Properties אבל לא בהכרח תוכל לראות את ה- Fields שהם static, ולא עוברים כחלק מה- Winmd.

    Tomer Shamam

    יום חמישי 13 ספטמבר 2012 06:48