MVVM Dashboard-Problem

11/02/2010 - 15:24 von Holger | Report spam
Hi NG,

ich hàtte gerne eine Art Dashboard - ich versuche das alles mit MVVM.
Meine Fenster habe ich schon - in der CodeBehind-Datei kann ich das
auch lustig auf die Oberflàche malen (inklusive Umbruch bei zu vielen
Fenstern, Größenànderung etc.)
Meine Herausforderungen:
- Das Canvas, in das ich die Fenster malen will, muss sich die
Elemente ziehen - geht das über ein Binding mit der Children-
Eigenschaft?
- Wenn das Canvas sich die Fenster gezogen hat, wer ist denn dann für
die Ausrichtung zustàndig...? Ich müsste mich ja in die Aktualisierung
des Bindings einklinken und dann explizit selbst neumalen.

Wie macht man sowas mit MVVM??

Danke + Grüße
Holger
 

Lesen sie die antworten

#1 Immo Landwerth
11/02/2010 - 16:07 | Warnen spam
On 11.02.2010 15:24, Holger wrote:

ich hàtte gerne eine Art Dashboard - ich versuche das alles mit MVVM.



Dass Du mit WPF arbeitest, habe ich diesem Satz gerade noch entnehmen
können, aber was meinst Du mit "eine Art Dashboard"?

Meine Herausforderungen:
- Das Canvas, in das ich die Fenster malen will, muss sich die
Elemente ziehen - geht das über ein Binding mit der Children-
Eigenschaft?



Warum möchtest Du überhaupt einen Canvas verwenden? Normalerweise sind
die anderen Panels deutlich besser für WPF Layout geeignet.

Generell wird man den Panels nicht die Children binden. Stattdessen
verwenden man den ItemsPresenter und setzt enstprechend die ItemsPanel
Eigenschaft:

<ItemsControl ItemsSource="{Binding Path=Items}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>

- Wenn das Canvas sich die Fenster gezogen hat, wer ist denn dann für
die Ausrichtung zustàndig...?



Das habe ich jetzt nicht verstanden.

Ich müsste mich ja in die Aktualisierung
des Bindings einklinken und dann explizit selbst neumalen.



Wenn Du komplexe Layout Anforderungen hast, mag es besser sein, selbst
von Panel abzuleiten und MeasureOverride() und ArrangeOverride() zu
überschreiben und das Layout selbst durchführen.

Das habe ich z.B. schon einmal gemacht, um einen Graphen (nicht zu
verwechseln mit einem Chart) darzustellen.

Immo Landwerth

Ähnliche fragen