Laden...
Avatar #avatar-3071.jpg
TripleX myCSharp.de - Member
Student Nürtingen Dabei seit 30.09.2006 328 Beiträge
Benutzerbeschreibung

Forenbeiträge von TripleX Ingesamt 328 Beiträge

12.04.2010 - 21:12 Uhr

Ich weiß nicht wies bei DreamSpark war, aber bei MSDNAA erwarte ich die Ultimate.

glaubst du wirklich, das MS knappe $11.000 an einen Studenten "verschenkt"?

12.04.2010 - 20:09 Uhr

String.Substring

MfG TripleX

12.04.2010 - 19:43 Uhr

weiss einer welche Version für uns studenten auf MSDNAA demnächst freigegeben wird? Professional, Premium oder Ultimate? Kann mir zwar nicht vorstellen dass es die Ultimate Version sein wird, aber ich hoffe trotzdem mal *g.

12.04.2010 - 19:14 Uhr

Die bei Channel 9 meinten vorhin (wenn ich es richtig verstanden habe), dass es noch ca. 2 Wochen dauern wird bis es auf dreamspark freigegeben wird 🤔.

12.04.2010 - 18:46 Uhr

Hoffentlich nicht viel später auf Dreamspark 🙂

danke für den Tipp, die Seite kannte ich bisher noch gar nicht, hab mich gleich mal registriert und verifiziert 👍.

Jetzt nur noch warten auf die Final und währenddessen den interessanten Webcast anschauen.

12.04.2010 - 17:40 Uhr

Hier gibts den Countdown:

>

jetzt gibt's da ein Live-Video zu sehen von der Konferenz in Las Vegas:

"Watch the live webcast of the Microsoft Visual Studio 2010 Launch on April 12th at 8:30am Pacific Daylight Time. Hear Bob Muglia, President of Microsoft’s Server and Tools business, as he introduces Visual Studio 2010 and shows how it helps developers unleash their creativity."

12.04.2010 - 13:29 Uhr

Ich lade gerade den RC herunter und werde mich selbst davon überzeugen. In ein paar Stunden kommt die Final raus, würd also lieber ein paar Stunden / Tage warten bis es im MSDNAA freigeschaltet ist und direkt die Final installieren 😉

Falls mit Windows: Läuft das ganze wie du willst und hast du alle Treiber gefunden?

Ich hab en MacBook mit Windows 7. Und bisher sind keine große Probleme aufgetreten, alle Treiber kann man sich von der Bootcamp CD installieren. Ein paar Probleme gab es zwar zu beheben, wie z.B. die Lautstärke der Boxen (die waren einfach zu leise) aber mit ein bisschen googlen kann man sich nen neuen Treiber runterladen der dieses Problem behebt. Was auch ein kleines Problem darstellt ist das Updaten der Grafikkarten Treiber, welches sich aber auch lösen lässt. Ein weiteres Problem war dass ich beim Programmieren immer wieder das |-Zeichen brauche - und diese ist beim Standardtastaturlayout nicht da gewesen wo sie sein sollte (eig. war sie gar net da). Hab mir dann selber ein Tastaturlayout gebastelt. Ansonsten fällt mir jetzt nichts ein wo es noch Probleme gibt.

Die Akkulaufzeit sinkt natürlich wenn man Windws verwendet, aber ich komme wenn ich sparsam bin auf ca. 4 Stunden (genau weiß ich es leider nicht, da ich meinen mac, sobald es möglich ist, auflade.

10.04.2010 - 11:35 Uhr

Also wenn mir die Standard .NET Klassen bei einem Problem nicht weiterhelfen, google meistens nach dem was ich machen möchte - und meistens bekomme ich dann den Hinweis dass das nur mit einer Win32-Methode realisiert werden kann.

07.04.2010 - 01:54 Uhr

Hab mich mal kurz hingesetzt (oder besser gesagt: hingelegt *g) und dir ein Beispiel programmiert - ist zwar nicht perfekt, aber es tut teilweise seinen Dienst und es verdeutlicht dir, wie man vorgehen könnte.

(Nicht wundern; die bat dateien und exe sind da um das Projekt zu konvertieren da. Denn ich programmiere in VS2010, und mit den dateien kann man leicht zwischen VS2008 und VS2010 wechseln)

MfG TripleX

06.04.2010 - 19:16 Uhr

Jo so eine Suche ist nicht gerade einfach, aber auch nicht unmöglich 😉

leider aber auch nur das erste und keine weiteren möglichkeiten.

Die string.IndexOf() Methode kann man überladen, damit die Suche erst ab einem bestimmten Position beginnt (String.IndexOf-Methode (Char, Int32)).

nur die "AcceptButton" Methode nicht [Hinweis] Wie poste ich richtig? Punkt 5 😉

Bzw, ist es in C# auch möglich das such Forumlar nicht mit "ShowDialog()" zu öffnen, optimaler weise so das es auch noch Funktioniert?

Mit .Show() kannst du deine Form ebenfalls anzeigen lassen.

in der MSDN findet man auch nur das "Find()" Event von der RTB welches aber auch nur das erste Makiert.

.Find() kann man, analog zu string.IndexOf(), ebenfalls überladen.

MfG TripleX

06.04.2010 - 10:04 Uhr

hab eine DLL für OpenVPN gebaut

me2 👍 ... Nur mal so aus Neugierde - wie lange hast du dafür gebraucht *g?

. Gibt es nun die Möglichkeit diese DLL ins System mit Adminrechten einzubinden, so dass andere Benutzer diese auch benutzen können

Ich glaube nicht dass dies möglich ist. Wenn doch, korrigiert mich bitte.

Was du aber machen kannst, ist entweder eine *.manifest Datei zu erstellen für dein Programm (siehe: http://www.aneef.net/2009/06/29/request-uac-elevation-for-net-application-managed-code/) oder aber du sagst beim öffnen der OpenVPN exe, dass diese Adminrechte benötigt. Dazu musst du dann bei den StartInfos die Property "Verbs" mit "runas" befüllen. Dann wird beim starten des Prozesses nach Adminrechten gefragt.

MfG TripleX

05.04.2010 - 15:46 Uhr

Also ich würde das mithilfe des Command Patterns (Multilevel-Undo/-Redo mit dem Command-Muster) lösen. Einfach alle Commands in eine Liste bzw. Queue speichern und diese dann ablaufen lassen wenn der User das Makro startet.

04.04.2010 - 11:37 Uhr

Schau dir doch den Link von herbivore an, darin sind mehrere Beispiele.

Es gibt verschiedene Möglichkeiten so etwas zu realisieren, die schnelle Lösung wäre,
dass du form 2 als Singleton implementierst und dort eine Property anbietest (z.B. Text):

public string Text {
get { return textBox.Text; }
set { textBox.Text = value; }
}

Somit kannst du dann von Form1 auf Form 2 fogendermaßen zugreifen:

Form2.Instance.Text = textbox.Text;

Das ganze ist aber eine schlechte Lösung und ich würde dir davon abraten. Da gibt's bessere Möglichkeiten, einfach mal herbivores Link anschauen.

04.04.2010 - 11:24 Uhr

Dann schreibe im Click-EventHandler des Buttons:

richtextbox1.Text += Environment.NewLine;
//bzw:
richtextbox1.AppendText(Environment.NewLine);

Damit erhälst du eine neue Zeile. Für einen Absatz musst du 2 neue Zeilen einfügen.

02.04.2010 - 13:00 Uhr

Hallo Gemeinde,

ich versuche gerade eine eigene kleine Extension für Visual Studio 2010 zu schreiben. Ziel ist es das ich ein Hintergrundbild im Code-Editor anzeigen lassen kann. Dass Bild soll der user (ich) außerdem auswählen können.

Mein erster Schritt war, dass ich ein neues Projekt mit dem Template "Visual Studio Package" erstelle (ich nenne das jetzt: Projekt 1). Dann erscheint ein Wizard womit ich ein paar Einstellungen machen kann. Ich habe mir zum Beispiel ein Menu Command und eine Tool Window generieren lassen.

Danach habe ich dann das Tool Window so umgebastelt dass ich mittels einem OpenFileDialog ein Bild auswählen kann.

Soweit so gut. Nun würde ich gerne haben, dass das Bild welches ausgewählt wurde, im Hintergrund des code editors angezeigt wird. Wie das prinzipiell funktioniert weiß ich. Denn ich habe das bereits schon mal gemacht. Dazu habe ich damals ein neues Projekt mit dem Template "ViewportAdornment" erstellt und so abgeändert dass ein Bild angezeigt wird (ich nenne das jetzt: Projekt 2). Also dass klappt.

Meine Frage ist jetzt, wie ich diese beiden Projekte kombiniere? Ich habe bereits versucht die beiden Klassen, welches ich in Projekt 2 habe, in Projekt 1 einzufügen.

Dies klappt aber nicht, denn so wird das Bild nicht angezeigt. Meine Vermutung warum es nicht klappt ist, dass ich diese beiden Klassen irgendwo "registrieren" muss?. Wie komme ich zu der Vermutung: In Projekt 2 gibt es die Factory-Klasse welche eine Methode namens TextViewCreated besitzt. Wenn ich dort einen Breakpoint setze (in Projekt 2) wird angehalten, sobald der Code editor erscheint. Wenn ich aber in Projekt 1, wo ich die beiden Klassen eingefügt habe das gleiche mache passiert nichts ... .

Mein zweiter Versuch war der dass ich in der Solution von Projekt 1 Projekt 2 hinzufüge. Damit funktioniert dann alles wie gewünscht,das Problem ist aber dass er mir 2 Extensions installiert - und das möchte ich nicht 😉

So langer Text, kurzer Sinn:

  1. Wie schaffe ich es, dass im "Visual Studio Package"-Projekt ebenfalls die Funktionalität des "ViewportAdornment"-Projekt erhalte.
  2. Wo soll ich den Pfad des Bildes, welches der User ausgewählt hat, abspeichern?

Ich hoffe ihr werdet schlau aus meiner Problembeschreibung, ist alles etwas komplex *g

€dit: Habe die Antwort bereits gefunden, hätte wohl erst besser googlen sollen:
http://social.msdn.microsoft.com/Forums/en/vsxprerelease/thread/a9914955-e9b8-4bee-8acd-2a4a11030fa4

MfG TripleX

31.03.2010 - 20:37 Uhr

Ich wollte noch ein paar Sachen anmerken, und zwar

  1. Verwende Path.Combine() um deinen Pfad zusammen zu basteln:
String path1 = Path.Combine(System.Threading.Thread.GetDomain().BaseDirectory, "Protokoll.txt");
  1. Verwende wenn möglich das using-Konstrukt, wenn du mit IDisposable-Objekten arbeitest - dazu gehören streams dazu:
            using (StreamWriter writer = new StreamWriter(path, true))
            {
                writer.WriteLine("Text der in die Datei geschrieben werden soll");
            }

Damit wird sichergestellt dass das Objekt aufjedenfall disposed wird (oder in deinem Fall: der Stream geschlossen wird) auch wenn eine Exception auftritt.

MfG TripleX

29.03.2010 - 12:58 Uhr

Und Demo versionen werden auch keine mehr veröffentlicht, so kauft man die katze im Sack, [...]

Eine Demoversion von C&C 4 gab es nicht, dafür eine eine Open Beta version, die man anzocken konnte.

Btw, mal so als Tipp: Beim nächsten mal kaufe dir das Spiel und cracke es - sobald ein Crack draußen ist. Dann musst du das Spiel nicht registrieren und kannst es bei nicht Gefallen weiterverkaufen *g

29.03.2010 - 12:54 Uhr

dein ganzer Ansatz mit dem UserControl läuft auf eine Vermischung von GUI und Modell hinaus.

Das ist mir bewusst und hier nicht weiter tragisch - trotzdem danke für den Hinweis.

Ich würde dir ohnehin empfehlen keine PictureBoxen zu verwenden, sondern die Bilder selbst zu zeichnen.

Hm wozu gibt es dann PictureBoxes wenn du mir vorschlägst dass ich ein Bild selber zeichnen sollte. Ich weiß dass das zwar nicht wirklich aufwendig ist - aber mir geht es ja um das Prinzip *g.

MfG TripleX

29.03.2010 - 02:01 Uhr

du könntest das Form_Closing event abonnieren und dort das Schließen verhindern indem du e.Cancel = true schreibst.

28.03.2010 - 20:50 Uhr

Hallo Gemeinde,

ich habe, wie man dem Titel entnehmen kann, ein Problem mit flowPanel.Controls.Clear(). Bevor ich aber zur Sache komme, wo genau das Problem ist, poste ich erstmal eine kleine Beschreibung.

Also ich bin dabei ein kleines Spiel zu programmieren (Memory), dazu habe ich mir ein UserControl gebastelt mit einer PictureBox. Das Bild auf der PictureBox kann ich mittels einer Property ändern:

        public Image Image
        {
            get { return picImage.Image; }
            set { picImage.Image = value; }
        }

Ausserdem habe ich im UserControl die Equals Methode überschrieben, damit ich später einfacher herausfinden kann, ob 2 Bilder gleich sind:

        public override bool Equals(object obj)
        {
            if (obj is ucCard)
            {
                return (obj as ucCard).Image.Equals(this.Image);
            }
            else return false;
        }

Die Bilder welche angezeigt werden sollen, hole ich mir aus einem Ordner (Images/Cards). Diesen Ordner lese ich im Konstruktor der MainForm aus und speichere alle Bilder in einer Liste:

            #region Populate _images from images in the directory
            string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, Path.Combine("Images", "Cards"));
            if (!Directory.Exists(path))
            {
                MessageBox.Show(String.Format("Pfad nicht gefunden: {0}", path));
                throw new DirectoryNotFoundException(path);
            }
            foreach (string file in Directory.GetFiles(path))
            {
                try
                {
                    _images.Add(Image.FromFile(file));
                }
                catch(ArgumentException) { }
            }
            #endregion

In der MainForm habe ich auserdem ein FlowPanel, wo dann später die oben beschriebenen UserControls reinkommen. Für jedes Bild welches ich in meiner Liste gespeichert habe, sollen 2 UserControls erstellt werden. Diese speichere ich erst in eine Liste, mixe diese Liste und dann füge ich jedes Element der Liste dem FlowPanel hinzu. Dies mache ich in einer Methode namens StartGame():

        private void StartGame()
        {
            _cards.Clear();
            pnlCards.Controls.Clear();

            #region Create Cards
            foreach (Image image in _images)
            {
                _cards.Add(new ucCard() { Image = image });
                _cards.Add(new ucCard() { Image = image });
            }
            #endregion

            //Shuffle List
            _cards = MixList<ucCard>(_cards);

            #region Display Cards
            foreach (ucCard card in _cards)
            {
                card.Click += new EventHandler(card_Click);
                pnlCards.Controls.Add(card);
            }
            #endregion

            //pnlCards.Controls.Clear();  //<-- PROBLEM

            //Resize UserControls
            pnlCards_SizeChanged(null, EventArgs.Empty);
        }

So. Dies funktioniert soweit auch alles, nun habe ich aber gemerkt dass wenn ich alle Karten aufgedeckt habe die Form hängen bleibt und abstürzt. Das liegt daran dass ich nachdem ich alle Karten aufgedeckt habe, wieder die Methode StartGame() aufrufe. Bin dann mit'm Debugger durchgegangen und habe gesehen dass das Problem bei pnlCards.Controls.Clear(); auftritt. Damit ich jetzt nicht immer erst ein Spiel beenden muss, habe ich zum Testen am Ende der Methode das panel gecleared (ist im obigen Code auskommentiert).

Ich kann mir nicht erklären warum ich das Panel nicht clearen kann. Vielleicht könnt ihr mir ein Hinweis geben?

Was ich bisher versucht habe:

  • wenn ich nur 1 Karte anstatt 2 erstelle, kann ich problemlos clearen
  • _cards.Add(new ucCard() { Image = (Image)image.Clone() });

€dit: hab gerade herausgefunden, dass beim Clearen anscheinend die Equals()-Methode des UserControls Probleme macht, denn wenn ich diese auskommentiere kann ich das Panel clearen ... Ich komme der Sache also schonmal näher *g

€dit 2: Wenn ich anstatt pnl.Controls.Clear() folgendes verwende:

while (pnlCards.Controls.Count != 0)
            {
                pnlCards.Controls.RemoveAt(pnlCards.Controls.Count - 1);
            }

gibt es eine Edlosschleife 🤔

MfG TripleX

28.03.2010 - 20:31 Uhr

Hm, hast du in den Projekteigenschaften den "Default Namespace" ebenfalls geändert?

28.03.2010 - 16:57 Uhr

Hallo Gemeinde,

ich habe neuerdings ein Problem mit Visual Studio 2010 (RC), und zwar kommt immer wenn ich Visual Studio starte eine Fehlermeldung (siehe Anhang).

Ausserdem erstellt er mir immer in meinem Benutzerordner 3 Verzeichnisse:
Visual Studio 2010, Visual Studio 2010Projects und Visual Studio 2010Templates

Diese 3 Ordner erstellt er mir außerdem in jedem Ordner, in dem ich eine *.sln Datei mittels doppelklick öffne. Ich finde das sehr nervig und hab deswegen schon mein PC neu aufgesetzt (formatiert) und VS2010 frisch installiert - das Problem besteht aber immer noch ...

Kennt jemand dieses Problem und weiß wie es zu beheben ist?

26.03.2010 - 14:20 Uhr

z.B so:

Als Array

MyStruct[] ms = new MyStruct[12];

als Liste:

List<MyStruct> ms = new List<MyStruct>();
ms.Add(new MyStruct());

sind aber basics ....

24.03.2010 - 16:35 Uhr

ich glaub folgendes Stichwort wird dir weiterhelfen: Marshalling

15.03.2010 - 19:43 Uhr

hängt davon ab was du machen willst. Wenn du Code kapseln kannst in eigene Klassen, dann tue dies auch! Wenn du aber GUI spezifische Sachen machen willst, wie z.B: Beim drücken eines Buttons soll etwas passieren, dann kannst bzw. musst du dass im EventHandler implementieren. Dazu darfst du dann aber nicht in der automatisch generierten Datei rumbasteln, sondern nur in der Datei die sich öffnet wenn du z.B. einen doppelklick auf den Button machst, bzw. rechtsklick im Designer und dann "Show Code".

11.03.2010 - 20:12 Uhr

Also ich glaube dass dein ConnectionString falsch ist. Denn wenn ich unter connectionstrings.com nachschaue, wird dort der Username und das Passwort anders übergeben?

MfG TripleX

06.03.2010 - 19:42 Uhr

Schade dass man die Beleuchtung net abschalten kann. Man kann die Beleuchtung ganz abschalten. insgesamt gibt es 4 Stufen zur Regelung der Helligkeit.

06.03.2010 - 18:18 Uhr

Zu 3tens sollte man noch sagen, dass man die Helligkeit mittels 2 Knöpfen regeln kann.

€dit: Was ich oben gesagt habe stimmt nicht ganz. Für die Lautsprecherregelung gibt es 3 Tasten (aus, leiser, lauter) und für die Beleuchtung nur eine.

MfG TripleX

06.03.2010 - 12:20 Uhr
  1. Enter und Space sollen recht viel Spiel in alle Richtungen haben

Dem kann ich mich nicht anschließen, für mich sind die beiden Tasten so in Ordnung.

  1. Merkwürdige Tastenanordnung teilweise (Insert-Taste zB)

Stimmt, jetzt wo du es sagst fällt es mir auch wieder auf. die insert taste ist ganz oben neben der "druck"-Taste, dafür ist die "entf"-Taste größer und belegt so direkt 2 tasten. Also da wo normalerweise die ins-Taste ist, ist jetzt ebenfalls die entf-Taste. Ich möchte das zwar nicht wirklich gutheißen, aber das stört mich eher weniger, da ich die ins-taste eigentlich nie brauche, dafür verwende ich die entf-Taste sehr oft und dadurch dass sie so groß ist, findet man sie schnell *g.

Was macht die Illuminated denn für einen Eindruck von der Verarbeitung her? Eher schwer und massiv, oder eher leichter?

Von schwer und massiv kann nicht die Rede sein, dass ist sie überhaupt nicht. Und von der Verarbeitung macht sie einen guten Eindruck, sie ist an ihrer breitesten Stelle so etwa einen Zentimeter dick und insgesamt ist die Tastatur nicht zu schwer. Obwohl die Tastatur relativ dünn ist, muss man trotzdem keine angst haben dass sie kaputtgeht, wenn man mal etwas stärker auf die Tasten haut 😉.

MfG TripleX

06.03.2010 - 11:53 Uhr

Die Logitech Illuminated scheint einige Kinderkrankheiten zu haben.

Also ich habe die Logitech Illuminated und bin sehr zufrieden damit. Ich wüste auch niht was du mit "Kinderkrankheiten" meinst, denn mir sind bisher keine Fehler aufgefallen.

Das einzige Manko ist, dass zwar alle tasten beleuchtet sind, bis auf die F-Tasten. Aber damit kann ich leben 😃

MfG TripleX

03.03.2010 - 22:18 Uhr

Für WebRequest jeglicher Art verwende ich meistens eine (abgewandelte Version) von WebClient mit HTTP-POST- und Cookie-Unterstützung . Kann ich nur empfehlen 👍

03.03.2010 - 22:13 Uhr

Bis jetzt habe ich versucht, die Zeilennummer mit der Funktion „IndexOf“ herauszulesen, da aber die Zeilen nicht gleich lang sein müssen, geht das ganze nicht auf…

Mit .IndexOf() wirst nicht weiterkommen, nach was willst du denn suchen?

Für die Zeilennummer gilt, Sie beginnt an der 3. Stelle einer Zeile und ist 3 Stellen lang…

Dann müsste doch folgendes gehen:

int zeilennummer = Convert.ToInt32(zeile.Substring(2, 5));

oder aber du verwendest regular expressions, das ist aber nur sinnvoll wenn die position der zeilennummer variabel ist, oder wenn man direkt mehrere Sachen aus einem string parsen möchte.

mfg TripleX

01.03.2010 - 14:56 Uhr

Wow, vielen Dank für dieses Feature. Dickes Lob an alle 👍

23.02.2010 - 23:23 Uhr

Der neue HP 50g Grafik-Taschenrechner bietet einen SD-Kartenleser mit Formatierungsfunktionen

Also ich für mich sieht der HP50g so aus als könnte man den programmieren, deswegen darfst den glaub nicht verwenden. Wie es mit deinem casio aussieht weiss ich nicht, da casio viele TR herstellt ...

wie wäre es denn mit diesem, der erfüllt alle voraussetzungen?

MfG TripleX

23.02.2010 - 17:39 Uhr

ja hab dein PLugin auch runtergeladen (btw, kannst du chinesisch? oO) aber dass hat ebenfalls bugs. Manchmal wenn ich vom Debug Modus zurück zu VS komme, hat sich das Bild verschoben und ich sehe mein schönes Bild nicht mehr, bzw. nur noch ein Teil davon 😃

werde es aber trotzdem mal reflectoren, mal schauen wie du das gelöst hast 😃

€dit: jetzt funktionierts ... hab jetzt folgendes gemacht:


            _image.HorizontalAlignment = HorizontalAlignment.Right;
            _image.VerticalAlignment = VerticalAlignment.Center;

Danke 😃

23.02.2010 - 13:20 Uhr

Hallo Gemeinde,

ich versuche gerade ein Addin für VS2010 zu schreiben, und zwar wollte ich (wie talla) ein Hintergrundbild im Code-Fenster anzeigen lassen. Dazu habe ich das Beispiel aus der SDK (PurpleBox) geändert und habe jetzt folgenden Code:

        private void Image_SizeChanged(object sender, SizeChangedEventArgs e)
        {
            //clear the adornment layer of previous adornments
            _adornmentLayer.RemoveAllAdornments();

            #region Adjust Canvas
            Canvas.SetLeft(_image, _view.ViewportRight - e.NewSize.Width*2);
            Canvas.SetZIndex(_image, 0);
            Canvas.SetTop(_image, (_view.ViewportBottom - e.NewSize.Height)/2);
            #endregion

            //add the image to the adornment layer and make it relative to the viewport
            _adornmentLayer.AddAdornment(AdornmentPositioningBehavior.ViewportRelative, null, null, _image, null);
        }
        private void OnSizeChanged(object sender, System.EventArgs e)
        {
            //clear the adornment layer of previous adornments
            _adornmentLayer.RemoveAllAdornments();

            #region Adjust Image
            _image.Width = _view.ViewportRight;
            _image.Height = _view.ViewportBottom;
            #endregion

            //add the image to the adornment layer and make it relative to the viewport
            _adornmentLayer.AddAdornment(AdornmentPositioningBehavior.ViewportRelative, null, null, _image, null);
        }

Das funktioniert soweit ach, also es wird ein Bild im Hintergrund angezeigt, jedoch habe ich folgendes Problem: Mein erstes Problem ist, dass ich das Bild immer auf der rechten Seite in der Mitte anzeigen möchte, aber ich krieg es nicht hin. Da müsste denke ich mal dann ein Fehler bei den Canvas.Setx()-Funktionen sein, aber ich finde ihn nicht.

Ausserdem habe ich das Problem, dass sich das Bild verschiebt, sobald ich die Größe des Codefensters verändere.

Ich hoffe ihr könnt mir helfen

MfG TripleX

22.02.2010 - 18:10 Uhr

also ich habe das Ganze so gelöst, dass mein ViewModelBase von DispatcherObject erbt:

ViewModelBase : DispatcherObject

ich hoffe mal das ist kein Fehler?

21.02.2010 - 19:18 Uhr

googemal nach "EventBinding" bzw. "Attached Commands". Dann findest du z.B. folgendes:

http://marlongrech.wordpress.com/2008/12/13/attachedcommandbehavior-v2-aka-acb/

oder eine bessere Alternative wurde hier im Forum auch von CSL erläutert:

ViewModel soll MouseDoubleClick vom Item(View) abfangen (MVVM)

21.02.2010 - 19:12 Uhr

ob es ein Plugin dafür gibt weiss ich nicht, aber du könntest ja mittels "Suchen und Ersetzen" die Namespaces umändern.

MfG TripleX

21.02.2010 - 16:53 Uhr

Fatal 🙂 verweist auf die Links und hat zumindest den zweiten selber nicht gelesen. 👅

mea culpa , ich habe mir den Thread war durchgelesen, den WinSharp93 gepostet hat, aber ich hab das mitm Usagemode wohl irgendwie überlesen bzw. gedacht da steht DesignMode .... ich entschuldige mich vielmals.

MfG TripleX

21.02.2010 - 16:32 Uhr

öhm davon war nie die rede 😃 schau doch nochmal in die beiden links, die wir dir gepostet haben.

21.02.2010 - 15:26 Uhr

Hallo SlyFox,

die Component.DesignMode Property sollte weiter helfen:

            if (this.DesignMode)
            {
                //Wird nur im Designer ausgeführt
            }
            else
            {
                //Wird nur während der Laufzeit ausgeführt
            }

MfG TripleX

21.02.2010 - 15:01 Uhr

Also meiner Meinung nach kommt sowas schon in die View, da es UI spezifisch ist.

21.02.2010 - 14:57 Uhr

Och sooo schwer ist programmieren (C#) doch gar nicht mut mach.

Naja es gibt schon komplizierte Themen, so ist nicht *g

btw, wenn du fragen hast biete ich mich an, kannst mich also gern anschreiben und ich versuche so gut ich kann zu helfen.

21.02.2010 - 14:30 Uhr

Ich verweise hier mal auf folgenden Link: http://joemorrison.org. Diese Lösung finde ich persönlich eleganter.

MfG TripleX

21.02.2010 - 13:22 Uhr

Es hilft dir in deinem Problem zwar nicht wirklich weiter, doch das Problem wurde vor einigen Tagen auch hier diskutiert: List<string> an DataGridComboBoxColumn binden.
Und da mich dass Ganze jetzt auch interessiert, versuche ich mich auch mal an dem problem.

€dit: also ich hab das Problem lösen können (dank: http://joemorrison.org )

Man muss von der Klasse DataGridComboBoxColumn ableiten:


    public class DataGridComboBoxColumnDataContextIsRoot : DataGridComboBoxColumn
    {
        protected override System.Windows.FrameworkElement GenerateEditingElement(DataGridCell cell, object dataItem)
        {
            FrameworkElement element = base.GenerateEditingElement(cell, dataItem);
            CopyItemsSource(element);
            return element;
        }

        protected override FrameworkElement GenerateElement(DataGridCell cell, object dataItem)
        {
            FrameworkElement element = base.GenerateElement(cell, dataItem);
            CopyItemsSource(element);
            return element;
        }

        private void CopyItemsSource(FrameworkElement element) {
            BindingOperations.SetBinding(element, ComboBox.ItemsSourceProperty, BindingOperations.GetBinding(this, ComboBox.ItemsSourceProperty));
        }
    }

Und dann kann man die Kategorien folgendermaßen binden:


        <DataGrid ItemsSource="{Binding Products}"
                  AutoGenerateColumns="False"
                  >
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding ProductID}" Header="ID" />
                <DataGridTextColumn Binding="{Binding Name}" Header="Name" />
                <self:DataGridComboBoxColumnDataContextIsRoot ItemsSource="{Binding DataContext.ProductSubcategories, RelativeSource={RelativeSource Findancestor, AncestorType={x:Type Window}}}" 
                                                              DisplayMemberPath="Name"
                                                              SelectedValuePath="ProductSubcategoryID"
                                                              SelectedValueBinding="{Binding ProductSubcategoryID}"
                                                              Header="Sub Category"
                                                              />
            </DataGrid.Columns>

        </DataGrid>

MfG TripleX

21.02.2010 - 13:16 Uhr

Außerdem sind keine Zeitspannen >1200 Sekunden (bzw. >20 Minuten) zugelassen

Das ist so nicht richtig. Wenn man "help shutdown" eingibt, kann man folgendes lesen:

/t xxx Legt die Zeitüberschreitungsperiode vor dem Herunterfahren fest.
Gültiger Bereich: 0-315360000 (10 Jahre), der Standardwert
ist 30.
Wenn der Zeitüberschreitungswert größer ist als 0, wird der
Parameter /f einbezogen.

21.02.2010 - 09:02 Uhr

Muss es denn unbedingt eine ListView sein oder warum reicht eine Checked ListBox (die heisst doch so oder?) nicht aus? ich glaube nämlich dass die genau das richtige für dich ist.

21.02.2010 - 01:42 Uhr

Das casten funktioniert deswegen nicht, da die Klassen nichts miteinander gemein haben. Du solltest Child von Person ableiten, dann könntest du Casten.