WPF קריאה לפונקציה עם פרמטרים מתוך ה-xaml
-
יש לי בקוד ה-xaml כמה ליסטים המבוססים על רשימת ערכים שנבנית ע"י פונקציה שמקבלת 2 ערכי טקסט שונים (לכל ליסט ערכים שונים).
בינתיים הקריאה לפונקציה ואיתחול ה-itemSource של הליסטים נעשים ב-load ב- code behind.
אני רוצה פתרון לזה דרך ה-xaml. ראיתי שיש אפשרות של ObjectDataProvider שמקבל ערכים אבל לא ברור לי איך הערכים ישתנו לכל ליסט. זה נראה שצריך להגדיר ObjectDataProvider חדש עבור כל ליסט - וזה לא נשמע הגיוני.
אשמח לשמוע רעיונות אחרים לביצוע.
תודה רבה.פורסם במקור בפורום CODE613 ב06/07/2013 23:57 (+03:00)
-
לא כ"כ הבנתי.
ObjectDataProvider זה רלוונטי במקרה שבשעת כתיבת הXAML ידוע לך בדיוק מה יהיו הערכים. לא הכנה לערכים דינמיים לזמן ריצה.
המקרה שלך שזה רשימות שנבנות ע"י פרמטרים יש שתי שאלות שעולות לי:
א. הפרמטרים הספציפיים למקום בו את רוצה להשתמש ידועים לך כבר בשעת עיצוב?
ב. התוצאה של הפונקציה חזויה כבר בשעת העיצוב, כלומר היא לא מושפעת משום גורם אחר שיבוא בעתיד?אם התשובה לשתי השאלות חיובית, אז כל הפונקצייה מיותרת. צריך להשתמש עם CollectionViewSource אחד לכל תצוגה, ולהגדיר פילטר בXAML. אם תעזור דוגמא לזה אשמח להראות.
פורסם במקור בפורום CODE613 ב07/07/2013 11:55 (+03:00)
-
כן התשובה חיובית עבור שתי השאלות.
אשמח לראות דוגמא איך עושים את זה. לא כל כך הבנתי.
מה שאני עושה עכשיו בקוד הוא כך:TransactionTypeCombo.ItemsSource = GetSourcesOfValues("ppp", "xxx"); PaymentTypeCombo.ItemsSource = GetSourcesOfValues("ppp", "yyy");
הפונקציה מחזירה לי list של שורות שמתאימות לתנאי מסוים מתוך ה-DB.
פורסם במקור בפורום CODE613 ב07/07/2013 14:42 (+03:00)
-
אני לא כ"כ משוכנע שמה שאמרתי הכי נכון לעשות.
בעצם מה מפריע לך במצב הנוכחי? עצם העובדה שישנו קוד במקום XAML?
כי CollectionViewSource עם הפילטר זה גם מחייב קוד שמטפל באירוע הפילטור. צריך מתודה נפרדת לכל סוג פילטור.
זה לא כ"כ זאמלי.פורסם במקור בפורום CODE613 ב08/07/2013 14:26 (+03:00)