איך ליצור radiobutton באופן דינאמי?
-
אני רוצה שהליסט של האמצעי תשלום יוצג בחלון החיפוש בתור פקדים של רדיו בוטון,
היאך אני עושה זאת?
ניסיתי לכתוב כך:<DataTemplate x:Key="radioPayment"> <RadioButton GroupName="methodOfPay" Content="{Binding Source={x:Static local:MainWindow.paymentMethod}}"/> </DataTemplate>
ולהשתמש בפקד של ליסט כך:
<ListBox ItemsSource="{Binding Source={x:Static local:MainWindow.paymentMethod}}" ItemTemplate="{StaticResource radioPayment}">
הבעיה היא שהוא מציג לי רשימה עם כמה פריטים אבל בכולם הוא כותב: "מזומן", במקום להציג גם את שאר האפשרויות..
מדוע הוא מציג לי רק את האיבר הראשון של הליסט הרבה פעמים, ולא את כל האיברים שקיימים בו? והאם ישנם דרכים נוספות לעשות זאת?
תודה!פורסם במקור בפורום CODE613 ב09/09/2015 22:48 (+03:00)
-
האמת שחשבתי שהדרך הזו לא טובה כי הListBoxItem עוטף את הרדיו, ואין סנכרון בין הבחירה ביחס לליסט לבין הChecked של הרדיו בוטון (רק במקרה זה נלחץ ושתיהם מתבצעים).
כמו"כ הListBoxItem מחיל סטייל על איבר בחור (רקע) וכאן מתבקש לשנות את זה להתנהגות של RadioButton.
לכן צריך לדעתי לשנות ברמת הסטייל של הListBoxItem (ע"י השמה של המאפיין ItemContainerStyle בListBox):<Style TargetType="ListBoxItem"> <Style.Setters> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ListBoxItem"> <RadioButton Content="{Binding}" IsChecked="{TemplateBinding IsSelected}" /> </ControlTemplate> </Setter.Value> </Setter> </Style.Setters> </Style>
זה מאגד בין הלוגיקה של בחירת הפריט לבין המצב של הרדיו. האמת שהרדיו (שזה מחלקה שלמה עם גרופ והכל) פה מיותר לגמרי וזה סתם "קיצור" ליצור את התצוגה שלו. הכי טוב זה להעתיק את הטמפלט של גרופ ישר לסטייל.
פורסם במקור בפורום CODE613 ב10/09/2015 19:04 (+03:00)
-
@דוד ל.ט.
האמת שחשבתי שהדרך הזו לא טובה כי הListBoxItem עוטף את הרדיו, ואין סנכרון בין הבחירה ביחס לליסט לבין הChecked של הרדיו בוטון (רק במקרה זה נלחץ ושתיהם מתבצעים).
לא בטוח שהבנתי אותך נכון... האם אתה מתכוון שאין משמעות ללחיצה על הרדיו?? או שאע"פ שהרדיו נלחץ אך הוא לא מסתנכרן עם הליסט ואיננו יודע איזה איבר מאיברי הליסט נבחר?
@דוד ל.ט.האמת שהרדיו (שזה מחלקה שלמה עם גרופ והכל) פה מיותר לגמרי וזה סתם "קיצור" ליצור את התצוגה שלו.
צודק!! לא חשבתי על זה..
@דוד ל.ט.הכי טוב זה להעתיק את הטמפלט של גרופ ישר לסטייל.
לא הבנתי מה זה הטמפלט של גרופ??
תודה רבה רבה על ההשקעה והמחשבה
פורסם במקור בפורום CODE613 ב10/09/2015 19:48 (+03:00)