Autor Beitrag
mannyk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 83
Erhaltene Danke: 1



BeitragVerfasst: Fr 18.03.11 20:30 
Hi Leute,
ich habe folgende Situation.

Ich möchte eine Liste darstellen, deren Einträge aus jeweils einen icon und einem Text bestehen.
Das klappt gut.

Nun, möchte ich den ersten ~5 Einträgen ein anderes icon verpassen.
Wie mache ich das am elegantesten, wenn die Information über das icon nicht selbst Teil der Daten ist?

Das icon ist bis jetzt statisch definiert.

Mein Code bis jetzt (der immer das gleiche Icon anzeigt)
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
        <ListBox ItemsSource="{Binding Customer}" DataContext="{Binding}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <DockPanel>
                        <Image Source="/MyApp;component/Images/standard_customer.png"></Image>
                        <TextBlock Text="{Binding Path=Name}"></TextBlock>
                    </DockPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
Ich könnte ja den Pfad des Icons in die Customer-Daten übernehmen. Das finde ich allerdings überhaupt nicht elegant. Meine Wahl wären dann eher zwei Listboxes untereinander oder eben zwei Datasources bei welcher dann irgendwie das Icon geändert werden könnte.
Was meint ihr dazu?
Danke und Grüße,
mannyk
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Sa 19.03.11 00:17 
Genau dazu sind die ViewModels aus dem MVVM-Pattern gedacht: Sie enthalten neben Business-Daten auch Daten für die View. Dort ist dann gegen eine Index-Property nichts einzuwenden.

_________________
>λ=

Für diesen Beitrag haben gedankt: mannyk
mannyk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 83
Erhaltene Danke: 1



BeitragVerfasst: Sa 19.03.11 09:25 
Gut, dann mache ich das so.

MVVM ist bei mir eh schon in in der Integration. Ich glaube es warst sogar eh du, der mir den Anstoß dafür in einem anderen Thread gegeben hat :)