Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von wackelkontakt
Thema: Wie kann man verhindern, dass die Mainform.cs mit immer mehr Code zugemüllt wird?
Am im Forum: Rund um die Programmierung

Hallo,

also CleanCode ist defintiv ein gutes Buch um allgemeine Regeln für sauberen Code kennenzulernen. Bei uns in de Firma ist das Pflichtlektüre für neue Kollegen :-) Der Resharper in Zusammenhang mit Stylecop tut dann den Rest. Wenn ich mir so manche Beispielprojekte aus dem Internet anschaue würde ich mir wünschen das sich mehr Entwickler mit dem Thema beschäftigen würden.

Über deine eigentliche Frage, nämlich der Architektur deines Programmes wirst du da aber meiner Meinung nicht viel finden. Du solltest dir diverse Entwurfsmuster anschauen, welche die Struktur einer Anwendung deutlich verbessern können. Gerade wenn eine Software kontinuierlich wächst und sich dabei die Anforderungen ständig ändern können diese Regeln meiner Meinung nach über den Erfolg oder Mißerfolg einer Software entscheiden. Dabei ist aber natürlich auch immer der Aufwand und Nutzen abzuschätzen. Ein blindes Einsetzen jedes Musters ist natürlich ebenso kontraproduktiv

Model View Presenter ist ein Pattern welches sich für WinForms-Anwendungen eignet.

Ein ORM-Mapper (wie z.B. NHibernate oder EntityFramework) gehört für mich ebenfalls essentiell zu einer sauberen Architektur. Und wenn man sich einen ganz sauberen Programmierstil aneignen möchte dann empfehle ich mal einen Blick auf das Vorgehen bei der testgetriebenen Programmierung.

Thema: simple Binding Frage (TextBox+TextBox=LabelAusgabe)
Am im Forum: GUI: WPF und XAML

Hallo,

sieht ja ziemlich abenteurlich aus dein Übungsbeispiel: Warum verwendest du Arrays in deinem Model wenn du dich eh nur auf ein Element bindest?

Vermutlich wird es aber nicht funktionieren da du zwar sagst das sich eine Zahl geändert hat aber nicht das Ergebnis.


        float[] fZahl1 = new float[2];
         public float[] Zahl1
         {
             get { return fZahl1; }
             set
             {
                 fZahl1 = value;
                 OnPropertyChanged("Zahl1");
                 OnPropertyChanged("Ergebniss[0]");
             }
         }

         float[] fZahl2 = new float[2];
         public float[] Zahl2
         {
             get { return fZahl2; }
             set
             {
                 fZahl2 = value;
                 OnPropertyChanged("Zahl2");
                 OnPropertyChanged("Ergebniss[0]");
             }
         }

könnte Abhilfe schaffen (keine Ahnung wie dein CodeBehind/ViewModel aussieht)

Habs nicht probiert... sieht äußerst kurios aus was du da machst :-)

Edit: nein wird vermutlich doch nicht funktionieren da du ja bei Änderung der Werte der Textboxen nicht im Setter der Liste landest. Kleiner Tip: verwerfe erst mal deine Arrays. Dann sollte das Beispiel funktionieren (wie gesagt: in Abhängigkeit was du im CodeBehind bzw. ViewModel treibst). Später kannst du mit Listen arbeiten (IList<float> !!) und in deiner View z.B. mit einem ItemsControl welches dir Listen darstellen kann. Dein obiges Beispiel macht keinen Sinn...

Thema: WPF dynamisch View's in Window rendern
Am im Forum: GUI: WPF und XAML

Hallo,

so ziemlich das selbe Problem hatte ich auch schon einmal. Hier die Lösung: Positionierung von Elementen innerhalb von UniformGrid -> wie?

Thema: TabItem change unterbinden
Am im Forum: GUI: WPF und XAML

Hallo,

das Thema wurde vor kurzem hier: Daten beim Wechsel von einem UserControl zum anderen speichern besprochen ;-)

Da du nach 2 Wochen immer noch nicht bei dem Thema weiter zu sein scheinst habe ich mal dein Beispielprojekt von damals etwas angepaßt (hatte grad mal bissl Langeweile ;-)

Dazu aber noch folgendes: ich habe dein Beispiel genommen und wirklich nur so viel umgebaut das es erst mal irgendwie funktioniert (Validierung beim Umschalten der TabItems). Es sind jede Menge Sachen dabei die man anders machen sollte bzw. sogar muß (z.B. MVVM, generische Erzeugung der TabItems). Soviel Langeweile habe ich dann aber auch nicht... das wäre auch nicht der Sinn der Sache alles vorzukauen.
Ich bin mir aber ziemlich sicher das du bei wachsender Projektgröße automatisch auf Probleme stoßen wirst bei denen du dann gewisse Sachen neu überdenken und umbauen mußt. Wie schon damals geschrieben empfehle ich dir beispielsweise das MVVM-Muster für WPF anzuschauen.

Thema: Fluent NHibernate Many-to-Many Mapping Problem
Am im Forum: Datentechnologien

Hallo,

ich bin auch ich zielmlicher Neuling mit NHibernate, also kann leider nur vermuten:

So wie es aussieht hast du eine Kreisbeziehung zwischen Store und Product... warum eigentlich? Hört sich für mich redundant an. Mach doch lieber eine Liste mit Stores, welche eine Liste mit Products haben und mehr nicht. Das wäre für mich dann auch eine n:m-Beziehung (ein Store hat mehrere Products und ein Product kann in mehreren Stores sein). Wenn du die Liste von Stores für ein Product benötigst, kannst du das über Datenbankabfragen ebenso auflösen (QueryOver, Sql, LinqToSql,...). Nur so ein Vorschlag... ;-)

Ansonsten probiere mal aus dem ManyToMany-Mapping der Objekte ein HasMany zu machen. Hört sich in deinem Fall irgendwie richtiger an.

Gibt es einen Grund das du die Tabellen-und Spaltennamen jedesmal explizit mit angibst?

Thema: MEF Konfigurationsystem mit XMLSerializer
Am im Forum: Datentechnologien

Sorry für die späte Antwort...

Man nennt das Dependency Injection. Also entweder du benutzt ein DI-Framework (wo ich immer noch der Überzeugung bin das MEF eines ist... deshalb habe ich das Beispiel gleich so verwendet :-) oder du erzeugst die Instanz direkt an der Stelle wo du sie benötigst:


    var settingService = new SettingService<MySettings>();
    var settings = settingService.Load("C:\\temp\\settings.xml");

Dann kannst du dir das Interface aber eigentlich sparen.

Thema: MEF Konfigurationsystem mit XMLSerializer
Am im Forum: Datentechnologien

Zitat von Neidhard
Code sollte man Wart und wiederverwendbar machen, genau das ist die Methode.

Aja... und woran machst du das fest? Für mich treffen solche Eigenschaften auf eine Software zu bei der ich es schaffe die Testabdeckung (Stichwort Unit-Test) bei den theoretischen 100% zu haben. Genau dann habe ich die Module soweit entkoppelt um von Wiederverwendung, Austauschbarkeit, Modularisierung, Erweiterbarkeit usw. zu reden. Ohne mir jetzt genaue Gedanken darüber gemacht zu haben glaube ich wird das bei deiner Implementierung schwer.
Zitat von Neidhard
aber warum kompliziert wenn es einfach geht...

hier mal die Verwendung meines unten angegeben Vorschlags:

public class Programm
    {
        public Programm(ISettingService<MySettings> settingService)
        {
            var settings = settingService.Load("C:\\temp\\settings.xml");
        }
    }

Typparameter sind gar nicht so schwer oder ;-) Und das alles in meinen Augen sehr elegant ohne Casten zu müssen oder inperformantes Reflection (für die Typbestimmung) zu verwenden. Achso... und hier weiß ich das ich die Testabdeckung auf 100% hochbekomme ;-)

Thema: MEF Konfigurationsystem mit XMLSerializer
Am im Forum: Datentechnologien

Zitat
Ich würde es so machen:

Hmm oke so kann man das auch machen... bei ner kleinen Probierapplikation mit maximal 3 Klassen. Ne, nicht mal dann würde ich das so machen ;-)

Sorry, aber ich finde das ist ein ganz übler Stil:
1. du gibst einen Typ in die Methode
2. der Rückgabewert der Methode ist object und muß
3. deshalb beim Aufruf gecastet

Wie er schreibt möchte er sein System flexibel halten und deshalb finde ich sollte er es auf keinen Fall so machen wie du vorgeschlagen hast (nochmal sorry... aber das ist meine Meinung)

Und ich sehe auch nicht den Unterschied zu meinem Beispiel. Oke, ich habe auf die Ausprogrammierung der Load-Methode verzichtet aber die ist ja ähnlich, bis auf den Rückgabetyp, welcher bei mir halt T ist.
Wenn MEF wirklich das ist was ich vermute dann kann er sich seine Services mit dem entsprechenden Typparameter über Dependency Injection an die Klasse geben lassen und ohne weiteres Zutun auf sehr elegante Art verwenden.

Thema: MEF Konfigurationsystem mit XMLSerializer
Am im Forum: Datentechnologien

Hallo,

ohne jetzt genau zu wissen was MEF genau ist oder tut (ich dachte mal gehört zu haben das ist ein DI-Framework... aber egal) sieht es so aus das du deinem Interface und Implementierung einen generischen Parameter verpassen mußt:

   
    public interface ISettingService<T>
    {
        T Load(string path);
        void Save(T settings);
    }

    public class SettingService<T> : ISettingService<T> where T : class
    {
        public T Load(string path)
        { ... }

        public void Save(T settings)
        { ... }
    }

Obiger Code funktioniert aber nur wenn eine generische Implementierung für alle Settings-Klassen ausreicht, also du es hinbekommst das sich (bis auf den Typ natürlich) nichts weiter unterscheidet. Falls nicht mußt du für jede Settings-Klasse eine eigene SettingService-Klasse bauen.

Schau dir mal folgenden Beitrag zu Repositories an: LINQ / DataContext / Problem beim Speichern
Da geht es um so ziemlich die selbe Sache wie du vorhast, nur das dort die Persistierung von einem OR-Mapper und bei dir über xml-Serialisierung erfolgen soll. Mal abgesehen von der Dskussion über korrekte Implementierungen usw. siehst du dort verschiedene Ansätze (bin zu faul das alles selber aufzuschreiben :-)

PS: zu dem where T : class schöner wäre es deinen Settings-Klassen ein Interface (z.B.: ISettings) zu verpassen und durch where T : ISettings die erlaubten Typen zu definieren...

Thema: State of the Art von (Daten-) Performance-Tests
Am im Forum: Rund um die Programmierung

Hallo, es geht darum solche Sachen vor der Auslieferung zu erkennen und zu optimieren. Das Problem konnte ziemlich einfach durch Virtualisierung des Wpf-TreeViews behoben werden, aber eben erst nach einer Bug-Meldung des Kunden. Ist uns halt vor Auslieferung, aufgrund fehlender Testdaten nicht aufgefallen. Was ich vergessen habe zu erwähnen ist das ich den Test gern auf GUI-Ebene machen möchte um eben solche Sachen auch mit auszuschließen.

Wie bringt man VS dazu automatisch Testdaten in die Datenbank zu schreiben? Die Testdatengenerierung mit AutoPoco schaue ich mir mal an, danke! Gibt es Tools um solche Sachen auf GUI-Ebene automatisiert zu messen?

Thema: State of the Art von (Daten-) Performance-Tests
Am im Forum: Rund um die Programmierung

Hallo,

letztens traten Performance-Probleme mit unserer Software im Produktivsystem auf (Laden der Daten eines TreeViews dauerte ca. 30 Sekunden). Das Problem war nicht das man das nicht beheben konnte sondern das beim Vorab-Test (mit minimalen Datenmengen) nichts aufgefallen war. Deshalb habe ich nun die Aufgabe eine Übersicht über StateOfTheArt-Tools und -Vorgehen zu Performance-Tests zu erstellen. Dabei geht es vorläufig nur um die Perormance bei großen Datenmengen. Der Test soll in den Build-Prozess integriert werden und über Nacht ausgeführt werden.

Kennt ihr euch eventuell mit solchen Lasttests aus und könnt mir ein paar Tips geben? Das Problem das ich dabei sehe ist das die Daten welche erzeugt werden sollen, ja irgendwo zu dem Domänenmodel passen müssen. Gibt es da Tools oder Frameworks welche reelle Daten erzeugen können (das hört sich zwar nach viel Magie an aber vielleicht habe ich ja Glück).

Ich bin für alle Anregungen dankbar ;-)

Thema: Daten beim Wechsel von einem UserControl zum anderen speichern
Am im Forum: GUI: WPF und XAML

Hallo,

ein Ansatz wäre es beispielsweise in den UserControls Events zu feuern, auf welche dein MainWindow reagiert (also z.B. bei TextChanged die entsprechenden MenuItems deaktivieren und nach dem Speichern halt wieder aktivieren). Dazu ist es aber notwendig das die Controls beim Umschalten nicht jedesmal neu erstellt werden, sondern als Feld gehalten werden. Wenn du wirklich eine umfangreichere Applikation erstellen möchtest dann solltest du solche grundsätzlichen Sachen beachten. Außerdem könntest du dir auch mal das MVVM-Muster anschauen, welches bei einer gewissen Projektgröße wirklich von Vorteil sein kann.

Viele Grüße!

Thema: Dynamisches Raster mit dem GridLayout
Am im Forum: GUI: WPF und XAML

Hallo,

für die dynamische Größe des Grids findest du hier 2 Lösungsansätze: Wieso kann Grid nicht als ItemsPanel verwendet werden?

Thema: Bereich ausblenden
Am im Forum: GUI: WPF und XAML

Hallo, da ich nicht genau weiß was dein zweites Problem ist hier mal ein paar Vorschläge zum ausblenden der Border. Du könntest:

- die Visibility des Borders auf eine neue Property binden, welche neben deiner Buttons-Property liegt und halt abhängig des Counts der Liste das gewünschte Verhalten zurückgibt
- einen Data-Trigger benutzen
- du kannst die Visibility-Property ebenfalls auf Buttons binden, bräuchtest dann aber einen (z.B. ListCountToVisibilty-) Converter. (Genauso würde es auch funktionieren wen du dem ContentControl einen Namen verpaßt und dich auf die Content-Property bindest)

So ich glaube du hast jetzt genug Auswahlmöglichkeiten :-) Vielleicht beantwortet das ja dein zweites Problem automatisch.

Thema: WPF Performance, wo ist sie hin?
Am im Forum: GUI: WPF und XAML

Zitat von Hans_Rakete
wie realisierst du das "zuweisen" statt dem neu Erstellen was ja der Standard ist?

Hallo,

also wie gesagt habe ich bisher die Daten (ziemlich redundant) in einer xml-Datei gespeichert. Beim Einlesen habe ich jedes mal neue Objekte erzeugt. Nun schaue ich aber ob die Objekte schon vorhanden sind (bspw. über einen Vergleich der Properties oder eleganter über den Hashcode) und verwende gleichartige Objekte eben nur einmal. So solllten die Daten dann ja auch in der Datenbank landen... Hibernate hat mir die Augen geöffnet :-)

Falls du jetzt immer noch nicht weißt wie ich das mache kann ich dir ja mal beispielhaft zeigen wie mein Importer (von alt auf neu, also lahmarschig auf einigermaßen schnell) funktioniert.

Thema: WPF Performance, wo ist sie hin?
Am im Forum: GUI: WPF und XAML

Hallo,

wie es der Zufall so will: ca. eine Stunde bevor ich diesen Beitrag gelesen habe, habe ich beim Komplett-Umbau meines Projektes (u.a. Persistierung der Daten von eigener xml-Datei-Struktur hin zu Datenbank mittels NHibernate... aber eigentlich unwichtig) die Performance ca. um den Faktor 6 verbessert... und das zufälligerweise.. juhu :-D

Ich nutze ebenfalls (sehr intensiv) den DataTemplateSelector, welcher u.a. sogar externe Dateien als Resourcen einliest. Die grausame Performance kam dadurch zustande das eigentlich gleiche Objekte mehrfach erzeugt wurden. Da ich jetzt maximal mit gefährlichem Halbwissen glänzen würde, lass ich den Fakt mal im Raum stehen.

Nachdem ich nun gleiche Objekte nach einmaligem Erstellen nur noch zuweise (und nicht mehr jedes mal neu er- und damit vermutlich dar-stelle) ist die Zeit für das Laden des Projektes von ca. 30s auf 5s geschrumpt.... und ich bin mir sehr sicher da ist noch Potential nach unten!

Kann es bei dir evtl. auch daran liegen?

Thema: PropertyChangedEventHandler propertyChanged ist immer null
Am im Forum: GUI: WPF und XAML

Zitat von raneu

Wie funktioniert es ohne


this.DataContext = m; 

d.h. wie kann ich es nur mit xaml code lösen?

Den DataContext setzt man in xaml mittels
    <Windows.DataContext>
        <_local:m/>
    </Windows.DataContext>

Viele Grüße

Thema: CustomControl Tutorial - Eine Art TimeLine
Am im Forum: GUI: WPF und XAML

Hallo,

so etwas ähnliches wurde hier Suche Zeitleiste (Control für WPF) schon mal gesucht. Vielleicht hilft dir der untere Link weiter.

Thema: Itemweise in ListView scrollen
Am im Forum: GUI: WPF und XAML

Hallo,

ich habe eine ListView in denen ich die Items per DataTemplate befülle. Nun möchte ich nicht pixelweise scrollen sondern immer nur ganze Items überspringen. Also das keine halben Controls innerhalb der ListView zu sehen sind. Ist dies möglich?

Danke!

Thema: Silverlight 4: ListBox Details im selektierten Element anzeigen
Am im Forum: GUI: WPF und XAML

Schau dir mal den DataTemplateSelector an, wobei ich jetzt nicht weiß ob der für Silverlight verfügbar ist.

Thema: Databinding OneWayToSource funktioniert nicht
Am im Forum: GUI: WPF und XAML

Hallo,

nur zum Verständnis: wenn du die Größe änderst wird nicht in die Setter der beiden Properties gesprungen, richtig?
Hast du schon mal im Ausgabefenster geschaut ob es da irgendwelche Fehlermeldungen zu sehen gibt?

Thema: Warum wird Konstruktor von gehostetem WinForms-Control ständig aufgerufen?
Am im Forum: GUI: WPF und XAML

Hallo,

ich möchte mittels WindowsFormsHost in einem Wpf-View ein 'eigenes' WinForms-UserControl benutzen:

        <WindowsFormsHost>
            <Application:LoggingGrid/>
        </WindowsFormsHost>

Funktioniert auch so weit jedoch habe ich das Problem das der Konstruktor der WinForms-Klasse LoggingGrid ständig aufgerufen wird.
Zur Erklärung: ich verwende MVVM und das Control wird in einer Workspace-View verwendet. Immer wenn ich den Workspace wechsle wird das Objekt neu erzeugt. Kann mir jemand sagen wie ich das umgehen kann? Ich möchte (ähnlich dem Workspace-ViewModel) dieses Control während der Laufzeit einmal erzeugen und benutzen können.

Ich hoffe ich habe das Problem nicht allzu umständlich dargestellt.

Thema: Entscheidung welches DataTemplate geladen wird in einem Converter
Am im Forum: GUI: WPF und XAML

Hallo,

Zitat von Hans_Rakete
Der TemplateSelector scheint nett, allerdings habe ich noch keinen Weg gefunden ihm einen Wert mitzugeben nachdem er unterscheiden soll ...
<DataGrid RowDetailsTemplateSelector="{StaticResource templateSelector}" .../>

Mitgegeben werden nun die einzelnen Objekte des Datenquelle des Grids, also die Objekte die eine Zeile in deinem Grid repräsentieren. Zumindestens wenn du es nicht expliziet änderst.

Thema: ListBox und Split-Steuerelement geeignet? - Problembeschreibung
Am im Forum: GUI: WPF und XAML

Hallo,

also was du möchtest ist eigentlich klar. Obwohl die Frage eigentlich ziemlich einfach ist, ist die Antwort nicht ganz so leicht. Der Grund ist das dir die Wpf da zu viele Möglichkeiten bietet als DIE eine Lösung dir jetzt präsentieren zu können. Du kannst da deiner Fanatasie freien Lauf lassen ;-)

So ein ähnliches UserControl wie du es brauchst habe ich beispielsweise mit einem StackPanel erledigt. Auf der linken Seite ist dann eine ListView, welcher ich eine ObservableCollection als ItemsSource hinzugefügt habe. In Abhängigkeit der Auswahl werden dann auf der rechten Seite in einer weiteren ListView die zugehörigen Items angezeigt (ähnlich wie in Expression Blend das Assets-Control).

Vielleicht kannst du damit ja was anfangen:

    
    <StackPanel Orientation="Horizontal">
        <ListView 
            ItemsSource="{Binding MainViewModel.ModuleService.AvailableGroups}" 
            SelectedValue="{Binding MainViewModel.ModuleService.SelectedGroup}">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <Label 
                        Content="{Binding}" 
                        HorizontalAlignment="Stretch">
                    </Label>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
        <ListView 
            ItemsSource="{Binding MainViewModel.ModuleService.CellItems}"
            SelectedItem="{Binding ParentBoard.SelectedSelectorCell}">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <_Views:CellSelectorItemView/>
                </DataTemplate>
            </ListView.ItemTemplate>
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <UniformGrid/>
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
        </ListView>
    </StackPanel>

Aber wie gesagt ist das nur eine von mehreren Möglichkeiten. Mit einem Grid hätte ich das z.B. genauso hinbekommen.

Thema: VS 2010 XAML-Designer wirft unmotiviert den Fehler "ValidationFailure"
Am im Forum: GUI: WPF und XAML

Hallo,

ich glaube ich kenne das Problem. Es liegt daran das während der Designzeit irgendwelche Datenzugriffe nicht funktionieren weil man beispeilsweise erst während der Laufzeit Datenquellen angibt. Abhilfe schafft hier diese Methoden (meistens im Konstruktor) mittels der IsInDesignModeProperty während der Entwicklungszeit 'auszukommentieren'

public static bool IsInDesignMode
        {
            get
            {
                return (bool)DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue;
            }
        }

Thema: Wieso kann Grid nicht als ItemsPanel verwendet werden?
Am im Forum: GUI: WPF und XAML

Hallo winSharp,

super Sache, funktioniert so wie es soll

Danke!


Mal so nebenbei: Dieser Blogeintrag: A simpler (and dynamic) Grid control for WPF und der Tip mit dem ItemContainerStyle sind die Lösung für ein früheres Thema Positionierung von Elementen innerhalb von UniformGrid -> wie? bei dem du mir schon mal helfen wolltest, ich aber aufgrund von Zeit- und Wissensproblemen aber erst mal zur Seite geschoben habe. Da aber das Sortieren der Liste (als Übergangslösung) extrem lange dauert, bin ich das Thema noch mal angegangen. Mit der jetzigen Lösung bin ich erst mal ganz zufrieden, bin mal auf die Performance gespannt.

Thema: Wieso kann Grid nicht als ItemsPanel verwendet werden?
Am im Forum: GUI: WPF und XAML

Hallo,

ich würde gern ein Grid als ItemsPanel verwenden. Jedoch geht das schief. Hier ein beispielhafter Aufbau (Das Beispiel macht vielleicht nicht viel Sinn aber ich wollte die Sache einnfach halten. ):

<ListView 
                ItemsSource ="{Binding Path=Cells}" >
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Button Content="{Binding Cell.VisuName}" 
                                Grid.Column="{Binding Cell.PositionX}"
                                Grid.Row="{Binding Cell.PositionY}"/>
                    </DataTemplate>
                </ListView.ItemTemplate>
                <ListView.ItemsPanel>
                    <ItemsPanelTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition/>
                                <ColumnDefinition/>
                                <ColumnDefinition/>
                                <ColumnDefinition/>
                                <ColumnDefinition/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition/>
                                <RowDefinition/>
                                <RowDefinition/>
                                <RowDefinition/>
                                <RowDefinition/>
                            </Grid.RowDefinitions>
                        </Grid>
                    </ItemsPanelTemplate>
                </ListView.ItemsPanel>
            </ListView>

Es werden nun aber keine Columns und Rows angelegt, sondern die Items werden in einem 1x1-Grid übereinander gestapelt. Verwende ich ein UniformGrid (natürlich ohne Zuweisung der Position) funktioniert alles wie es soll.

Kann mir jemand erklären warum das mit einem Grid schief geht?

Thema: Resourcenelemente mit dynamischen Transformationen in z-Richtung stapeln
Am im Forum: GUI: WPF und XAML

Hallo, ich hänge schon eine ganze Weile an einem Problem und hoffe ihr könnt mir helfen.

Ich würde gern Visu-Elemente in z-Richtung stapeln. Als ein Visu-Element würde ich gern ein FrameworkElement (beispielsweise Path) welches als Resource definiert ist mit verschiedenen Transformationen versehen und anzeigen.

Die Klasse mit den Informationen für jedes Element sieht so aus:

    public class XamlItem
    {
        public string ResourceName { get; set; }
        public int Rotation { get; set; }
        public int TranslationX { get; set; }
        public int TranslationY { get; set; }
    }

2 Sachen habe ich bisher versucht:

1. über einen Converter die einzelnen Elemente hinzuzufügen:
                <ItemsControl 
                    ItemsSource="{Binding Cell.XamlItems}">
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Label
                                Content="{Binding Converter={StaticResource converter}}"/>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <Grid/>
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>
                </ItemsControl>

Jedoch wird hier das das FrameworkElement (obwohl wie gesagt als Resource definiert) nur einmal dargestellt?! Sollte es nicht so sein das Resourcen mehrfach verwendet werden können?

2. habe ich versucht das Ganze über den DataTemplateSelector zu lösen (vermutlich auch die bessere Variante)
<ContentPresenter Content="{Binding Cell}" ContentTemplateSelector="{StaticResource templateSelector}"
Ich bekomme es jedoch in der SelectTemplate - Methode nicht hin die Resourcen zu dem DataTemplate im Code hinzuzufügen:

                        DataTemplate dt = new DataTemplate();

                        FrameworkElement element = ((Control)obj).TryFindResource(xamlItem.ResourceName) as FrameworkElement;
                        RotateTransform rt = new RotateTransform(xamlItem.Rotation);
                        element.RenderTransform = rt;

Tja und wie jetzt weiter? Ich vermute mal über die FrameworkElementFactory aber iregndwie bekomme ich das Element nicht hinzugefügt (ich hoffe ja das die Resource in diesem Fall mehrfach verwendet werden kann).

Kann mir jemand weiterhelfen? Oder gibt es noch eine bessere Lösung?

Danke fürs Durchlesen ;-)

Thema: Binding auf statische Ressource von anderem Projekt
Am im Forum: GUI: WPF und XAML

Hallo Mazo,

was klappt denn nicht? Kompilierfehler oder macht er nicht so wie es soll? Gibt es Fehlermeldungen im Ausgabefenster?

Ich vermute aber mal du mußt den DataContext auf Box setzen und den BindingPath dann bspw. auf ActiveBackgroundColor.

EDIT:

Zitat
(definiert in App.xaml)

überlesen :-) also dort stellst du die Verbindung zur Datenbank her? Kannst du das dann in deinem Toolkit-Projekt evtl. über die ResourceDictionary.MergedDictionaries Property hinbekommen?

Thema: SL: Tooltip programmatisch mit Style hinzufügen
Am im Forum: GUI: WPF und XAML

Ich glaube mich zu erinnern das die Angabe des DataTemplates in den Resourcen in Silverlight nicht geht (sondern nur in Wpf). Deshalb hier noch mal eine SL-fähige Variante (-:


            <ListView ItemsSource="{Binding ToolTipGroups}">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{Binding Key}" />
                            <TextBlock Text="{Binding Value}" />
                        </StackPanel>
                        <!-- Hier kann stattdessen auch ein UserControl angegeben werden:
             <Views:ToolTipGroupView/>-->
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>