Hallo,
Ik heb de volgende situatie, al een paar uur, en mijn xaml kennis is 'ambitieus groentje'. Ik heb hier een WPF Unleashed boek van Adam Nathan en een stel collega's die allemaal druk zijn met development... en ik probeer dit op te lossen voor het weekend
Het gaat om een menubalk. Initieel zag die er zo uit:
<< [Dashboard] [Button1] [Button2] [ButtonN] >>
Waarbij << en >> scrollbuttons zijn, en Dashboard, Button1 t/m ButtonN in een collection zitten.
Daarvoor is nu een listbox:
De BubbleDataTemplate is er, de BubbleListBoxItemStyle is er, daarin staan nog korte templates. So far so good.
Maar, het nieuwe ontwerp van de menubalk is als volgt:
[Dashboard] << [Button1] [Button2] [ButtonN] >>
De Dashboardbutton staat nu apart, en niet meer (per sé) in een listbox. Een van de developers heeft de .cs file uitgebreid en naast 'Buttons' ls Binding Path kan ik nu ook 'DashboardButton' aanspreken; dat is dan geen collection, maar 1 enkele button.
Nu komt het lastige. In die ListBox stonden ListBoxItems, en die kregen hun data van papa ListBox, en in de templates voor de ListBoxItems wordt uit die collection, per button, nog de nodige data (label, image) getrokken. Nu heb ik die ListBox niet meer, en wil ik direct een knop aanmaken:
Ik heb in een Button element geen Source meer, en wel een Template, als property, maar Template accepteert niet dat ik hem naar een DataTemplate wijs
. Ik kan wel weer een Template van de Button maken, met een Image erin - en die Image heeft wel weer een Source, en die kan ik Binden aan? Ja aan wat. 'DashboardButton' - maar die geeft geen thuis als source.
Waarschijnlijk geef ik veel te weinig informatie aan jullie om tot een oplossing te komen, maar ik weet niet welke informatie ik moet geven - er staat zoveel in mijn xaml file. Van de xaml snap ik nog iets, maar van de .cs al helemaal niks. Mijn developers moeten zich juist op de xaml weer aardig inlezen.
De eerste oplossing was daarom ook: gooi die enkele button weer in een ListBox... maar dat heeft niets geholpen. Vind ik persoonlijk ook niet de mooiste oplossing, maar als dat de enige werkende manier is...
Ik weet het even niet meer, wie denkt mij een zetje in de goeie richting te kunnen geven?
Ik heb de volgende situatie, al een paar uur, en mijn xaml kennis is 'ambitieus groentje'. Ik heb hier een WPF Unleashed boek van Adam Nathan en een stel collega's die allemaal druk zijn met development... en ik probeer dit op te lossen voor het weekend
Het gaat om een menubalk. Initieel zag die er zo uit:
<< [Dashboard] [Button1] [Button2] [ButtonN] >>
Waarbij << en >> scrollbuttons zijn, en Dashboard, Button1 t/m ButtonN in een collection zitten.
Daarvoor is nu een listbox:
XML:
1
2
3
4
| <ListBox ItemsSource="{Binding Path=Buttons, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, Source={StaticResource NavigationBarODP}}" ItemTemplate="{DynamicResource BubbleDataTemplate}" ItemContainerStyle="{DynamicResource BubbleListBoxItemStyle}"/> |
De BubbleDataTemplate is er, de BubbleListBoxItemStyle is er, daarin staan nog korte templates. So far so good.
Maar, het nieuwe ontwerp van de menubalk is als volgt:
[Dashboard] << [Button1] [Button2] [ButtonN] >>
De Dashboardbutton staat nu apart, en niet meer (per sé) in een listbox. Een van de developers heeft de .cs file uitgebreid en naast 'Buttons' ls Binding Path kan ik nu ook 'DashboardButton' aanspreken; dat is dan geen collection, maar 1 enkele button.
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| public NavigationBarButton DashboardButton { get { return _dashboardButton; } set { _dashboardButton = value; OnPropertyChanged("DashboardButton"); } } private NavigationBarButton _dashboardButton; /// <summary> /// Gets or sets the buttons. /// </summary> /// <value>The buttons.</value> public Collection<NavigationBarButton> Buttons { get { return buttons; } set { buttons = value; OnPropertyChanged("Buttons"); } } private Collection<NavigationBarButton> buttons; |
Nu komt het lastige. In die ListBox stonden ListBoxItems, en die kregen hun data van papa ListBox, en in de templates voor de ListBoxItems wordt uit die collection, per button, nog de nodige data (label, image) getrokken. Nu heb ik die ListBox niet meer, en wil ik direct een knop aanmaken:
XML:
1
| <Button /> |
Ik heb in een Button element geen Source meer, en wel een Template, als property, maar Template accepteert niet dat ik hem naar een DataTemplate wijs
Waarschijnlijk geef ik veel te weinig informatie aan jullie om tot een oplossing te komen, maar ik weet niet welke informatie ik moet geven - er staat zoveel in mijn xaml file. Van de xaml snap ik nog iets, maar van de .cs al helemaal niks. Mijn developers moeten zich juist op de xaml weer aardig inlezen.
De eerste oplossing was daarom ook: gooi die enkele button weer in een ListBox... maar dat heeft niets geholpen. Vind ik persoonlijk ook niet de mooiste oplossing, maar als dat de enige werkende manier is...
Ik weet het even niet meer, wie denkt mij een zetje in de goeie richting te kunnen geven?
heidiulrich.nl | adventura.nl : rugzakavonturen | pathwise.nl : prepping geeks to get jobs