Laden...

Forenbeiträge von Markus86 Ingesamt 49 Beiträge

18.04.2011 - 22:15 Uhr

Hey, die kenne ich schon, allerdings verwenden die sowohl die alte Workflow Foundation als auch MVC 2 😃

18.04.2011 - 19:25 Uhr

Hallo,

ich habe es mit diesem Tutorial geschafft, einen Workflow in meinem MVC-Anwendung einzubauen: http://stevenalexander.posterous.com/integrating-a-persisted-wf40-workflow-with-mv

Allredings habe ich dabei folgendes Problem: beim Submit wird immer der Index-Controller aufgerufen (der dafür zuständig ist, den nächsten View herauszufinden). Mein Problem ist nun: wie kann ich nach dem Submit auf das Model der jeweiligen Seite zugreifen? Irgendwie muss ich die eingegebenen Daten ja verarbeiten.

Weiß das zufällig jemand?

Viele Grüße,
Markus

13.04.2011 - 22:57 Uhr

Was meinst du damit? Also wie kommt die UserId vom View in den Partial View?

EDIT: Oh man, das wars tatsächlich 😃 Danke für den Tipp!!!

13.04.2011 - 19:33 Uhr

Hallo, folgendes Problem:

ich habe eine Seite, auf der Details zu einem Benutzer angezeigt werden, dessen ID wird als Parameter übergeben.

Darin habe ich einen Bereich, wo ich zum aktuellen Benutzer eine Adresse hinzufügen kann. Dazu habe ich eine Strongly Typed Partial View erstellt (mit Address als Model). Nun brauche ich aber zusätzlich noch die ID des Users im AddAddress-Controller.

Ich habe bereits folgendes probiert:

  • neues Model (AddAddressModel), das neben den Address-Properties noch die UserId enthält -> UserId ist immer null (Html.Partial("_AddAddress", new AddAddressModel { UserId = ViewBag.User.Id})
  • ViewBagDictionary verändert -> beim Controller ist dieses immer leer

Weiß da jemand Rat? Oder wie würde man diesen Fall ansonsten modellieren? Danke schonmal!

Viele Grüße,
Markus

18.04.2010 - 20:26 Uhr

Der DataContext passt (im Code gehts ja auch), und auch das PropertyChangedCallBack wird nicht aufgerufen, wenn ichs im XAML binde. Mit dem Binding im Code geht alles...

18.04.2010 - 17:12 Uhr

Hallo,

folgende Situation: ich habe ein User-Control mit einem Property "MyIntProperty". Auf meiner Hauptseite ist eine Instanz des Controls. Die Seite selbst hat das gleiche Property. Nun binde ich das Property des Controls an das Property der Seite. Wenn ich das Property der Seite nun aktualisiere, möchte ich, dass der Setter des Controls aufgerufen wird, was aber nicht passiert.

Im Anhang eine Minimaldemo des Problems. Habe ich da einen Denkfehler drin?

Update: wenn ich das Binding im Code zuordne, funktioniert es!!


            Binding b = new Binding("MyIntProperty");
            b.Source = this;
            b.Mode = BindingMode.TwoWay;
            testControl.SetBinding(TestControl.MyIntPropertyProperty, b);

Außerdem hier bissl Code zur Übersicht:


    public partial class TestControl : UserControl
    {
        public static readonly DependencyProperty MyIntPropertyProperty = DependencyProperty.Register("MyIntProperty", typeof(int), typeof(TestControl), new PropertyMetadata(0));

        public int MyIntProperty
        {
            get
            {
                return (int)GetValue(MyIntPropertyProperty);
            }
            set
            {
                SetValue(MyIntPropertyProperty, value);
            }
        }

        public TestControl()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            button1.Content = MyIntProperty.ToString();
        }
    }


    public partial class MainPage : UserControl, INotifyPropertyChanged
    {
        protected void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }

        private int myProperty = 0;

        public int MyIntProperty
        {
            get
            {
                return myProperty;
            }
            set
            {
                myProperty = value;
                OnPropertyChanged("MyIntProperty");
            }
        }

        public MainPage()
        {
            InitializeComponent();
        }

        public event PropertyChangedEventHandler PropertyChanged;

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            MyIntProperty = 10;
        }
    }

Und in der XAML der MainPage steht:

<c:TestControl MyIntProperty="{Binding MyIntProperty,Mode=TwoWay}" />

Viele Grüße,
Markus

16.04.2010 - 09:34 Uhr

Nach der RTM von Visual Studio 2010 wurde nun auch Silverlight 4 veröffentlich:

http://weblogs.asp.net/scottgu/archive/2010/04/15/silverlight-4-released.aspx

Auch das Toolkit wurde aktualisiert: http://silverlight.codeplex.com/releases/view/43528

15.04.2010 - 12:08 Uhr

Das mit dem .NET Reflector und der Listbox war ne gute Idee, da hätte ich eigentlich auch draufkommen können 😃

Die machen das anscheinend so, dass es ein zweites DependencyProperty gibt, das im GETTER aktualisiert wird, was recht clever ist.

Vielen Dank jedenfalls für die Hilfe!

15.04.2010 - 10:49 Uhr

Hmm, mir fällt auf, dass der Trivialfall wohl nicht ganz dem Anwendungsfall entspricht.

Letztendlich siehts so aus: DependencyProperty "AllItems", und ein zweites Property "SelectedItems"

bei SelectedItems werden einfach die AllItems durchiteriert und das jeweilige Selected-Property wird abgefragt. Daraus wird dann wieder ne ObservableCollection gebaut (mit den Items mit Selected = true). Sprich die AllItems enthält immer alle, und SelectedItems eben diejenigen, die ausgewählt sind.

Im Setter von SelectedItems werden auch alle AllUsers durchiteriert, und die die in "value" drin sind werden Selected = true, die andern Selected = false.

So, nun möchte ich die SelectedItems databinden.

15.04.2010 - 10:13 Uhr

Wie gesagt, das erste Property ist ja ein Dependency-Property. Das zweite baut aber auf dem ersten auf, wie muss ich also das zweite implementieren?

15.04.2010 - 09:59 Uhr

Hallo,

ich habe ein Silverlight-UserControl, welche z.B. ein Property "Zahl" hat. An dieses Property möchte ich Werte binden, d.h. es ist als DependencyProperty implementiert. Soweit so gut.

Nun habe ich aber Beispielsweise noch ein Property, NochEineZahl, das so aussieht:


public int NochEineZahl
{
   get { return Zahl + 5; }
   set {Zahl = value - 5; }
}

An dieses Property möchte ich nun auch wieder Werte binden, also bräuchte ich ja noch ein DependencyProperty. Aber wie kann ich das dann implementieren?

Viele Grüße,
Markus

10.02.2010 - 22:42 Uhr

Oh man, runtergeladen, installiert, und festgestellt, dass Silverlight 4 beta damit nicht kompatibel ist 😦

http://timheuer.com/blog/archive/2010/02/09/faq-silverlight-and-visual-studio-2010-release-candidate.aspx

19.09.2009 - 15:36 Uhr

Hallo,

ich habe folgendes Problem: ich habe verschiedene Workshops, die jeweils eine begrenzte Anzahl von Teilnehmern haben.

Dann habe ich verschiedene Personen, die jeweils 2 Workshops angeben sollen, in denen sie Teilnehmen möchten. Außerdem können sie noch 2 Alternativ-Workshops angeben.

Nun suche ich einen Algorithmus, der dafür eine möglichst optimale Einteilung berechnet, d.h. jeder Teilnehmer soll in 2 Workshops teilnehmen können, möglichst sollen dabei die Wunsch-Workshops berücksichtigt sein (notfalls aber auch die Alternativ-Workshops).

Kann mir jemand dabei helfen? Oder gibt es für sowas einen (bekannten) Algorithmus?

Danke schonmal 😃

Viele Grüße,
Markus

28.10.2008 - 16:49 Uhr

Hallo,

kennt jemand eine Implementierung (am besten in C#) für das Traveling Salesman Problem mit verschiedenem Start- und Endpunkt? Sprich ich will von A nach B über C und D, und das mit den kürzestem Weg...

Grüße,
Markus

13.09.2008 - 14:58 Uhr

Ich weiß natürlich nicht, wie deine Anwendung aussieht, aber es gibt noch die Möglichkeit, Controls zu gruppieren (z.B. in einer Groupbox), und dann nur die Groupbox zu deaktivieren, und nicht alle darin enthaltenen Controls einzeln...

17.08.2008 - 14:36 Uhr

Oh, sorry, hab die falschen Punkte hier reingeschrieben! Hab sie vorher noch in Dezimal-Grad umgerechnet, das hier sind Grad - Min - Sek...

Jedenfalls gehts damit wunderbar 🙂 VIELEN VIELEN DANK!!!!

17.08.2008 - 14:03 Uhr

Irgendwie sitze ich gerade auf der Leitung 🙂

Ich hab hier nun meine Funktion:


           public static PointF Transform(PointF[] pointsGeo, PointF[] pointsPix, PointF point)
        {
            PointF basePointGeo = pointsGeo[0];
            PointF basePointPix = pointsPix[0];

            PointF p1Geo = new PointF() { X = pointsGeo[1].X - basePointGeo.X, Y = pointsGeo[1].Y - basePointGeo.Y };
            PointF p2Geo = new PointF() { X = pointsGeo[2].X - basePointGeo.X, Y = pointsGeo[2].Y - basePointGeo.Y };

            PointF p1Pix = new PointF() { X = pointsPix[1].X - basePointPix.X, Y = pointsPix[1].Y - basePointPix.Y };
            PointF p2Pix = new PointF() { X = pointsPix[2].X - basePointPix.X, Y = pointsPix[2].Y - basePointPix.Y };

            PointF qGeo = new PointF() { X = point.X - basePointGeo.X, Y = point.Y - basePointGeo.Y };

            double b = (qGeo.Y * p1Geo.X - qGeo.X) / (p2Geo.X + p2Geo.Y * p1Geo.X);
            double a = (qGeo.X - b * p2Geo.X) / p1Geo.X;

            PointF qPix = new PointF() { X = (float)(a * p1Pix.X + b * p2Pix.X), Y = (float)(a * p1Pix.Y + b * p2Pix.Y) };

            qPix.X += basePointPix.X;
            qPix.Y += basePointPix.Y;

            return qPix;
        }

Der Übergebene Punkt point enthält Geo-Koordinaten.

Hier mal meine Demo-Punkte:


Lat		Long		X	Y
48,200980	10,542070	495	417
48,201027	10,542412	910	329
48,200779	10,542198	649	783

Der zu zeigende Punkt und die Pixel-Werte, die rauskommen sollen:


48,0515		10,35445	852	520

Rauskommen tut aber: (-485, 515)

Was mache ich nun falsch?

17.08.2008 - 13:16 Uhr

Okay, das macht für mich Sinn, aaber, ich habe jetzt versucht, ein Gleichungssystem aufzustellen, aber meine Punkt-Vektoren haben ja nur jeweils 2 Koordinaten. Wenn ich dann aber 3 Punkte nehme, um das Baryzentrum zu bestimmen, habe ich ja 2 Gleichungen mit 3 Unbekannten, oder?

Also wenn meine 3 Punkte folgende Koordinaten haben Lati Longi und der neue Punkt Latn Longn

ergibt sich doch folgendes:



Latn * (a1+a2+a3) = Lat1 * a1 + Lat2 * a2 + Lat3 * a3

Longn * (a1 + a2 + a3) = Long1 * a1 + Long2 * a2 + Long3 * a3

und gesucht sind die a's?

17.08.2008 - 11:51 Uhr

Das Problem, das ich momentan habe ist folgendes:
Ich berechne mir eine Art "Mittelpunkt" aller Punkte (indem ich alle X-Werte addiere und durch die Anzahl teile, das gleich mit den Y-Werten).
Dann berechne ich für jede Gerade von diesem Mittelpunkt zu jedem gegebenen Punkt die Steigungen und den Winkel. Diese Winkel sollten ja alle ungefähr identisch sein, jedoch sind da sehr große Abweichungen festzustellen. Das Gleiche gilt für die Translation...

17.08.2008 - 10:59 Uhr

Nein, den kenne ich auch nicht, den muss ich eben über die Punkte bestimmen...

17.08.2008 - 10:49 Uhr

Die Karte ist jedoch rotiert, das is das Problem...

17.08.2008 - 10:40 Uhr

Hallo Leute,

ich habe folgendes Problem: ich habe eine Konstruktionszeichnung eines Geländes, auf der ich von ca. 10 Punkten die genauen GPS-Positionen (und natürlich die Pixel-Positionen der Punkte) kenne. Nun möchte ich weitere Punkte, die ich als GP-Position kenne, auf der Karte anzeigen (sprich ich muss die GPS-Position in eine Pixel-Position umrechnen). Der Ausschnitt ist nicht so groß, ca. 1x1 km.

Kann mir jemand dabei helfen? Ich dachte an folgendes, ich bestimme Translation und Rotation wie folgt:

Translation: ich nehme je 2 Punkte, einmal in Gep-Koordinaten, einmal in Pixel-Koordinaten, berechne jeweils die Distanz, und berechne dann den Quotienten. Das wäre die Translation.

Rotation: nehme je 2 Punktepaare (einmal in Geo-Koordinaten, einmal in Pixel-Koordinaten), berechne jeweils die Geradensteigung der Paare, und bereche da die Differenz zwischen Geo- und Pixel-Koordinaten. Das wäre dann die Rotation.

Leider funktioniert es so nicht...

Viele Grüße,
Markus

06.03.2008 - 20:37 Uhr

Hallo,

ich bin gerade dabei, die TreeView-Komponente zu erweitern. Nun habe ich folgendes Problem: ich möchte am Anfang des TreeViews einen "Header" einzeichnen, erst danach sollen die Nodes beginnen. Wenn ich in DrawNode die Node einfach weiter unten zeichne, sieht es zwar gut aus, aber beim Auswählen werden nach wie vor die alten Positionsangaben der Node berücksichtigt. Wie kann ich nun einstellen, wo die erste Node gezeichnet wird?

06.02.2008 - 09:34 Uhr

Hallo,

ich hatte in VS2005 ein #region-Snippet, das direkt bei den Codesnippets aufgetaucht ist, also OHNE zusätzlichen Ordner, sprich ich drücke:

Strg +K, X -> #re "Enter" und dann war es da. Bei 2008 ist dieses Snippet nun im "Visual C#"-Unterordner.

Wie kann ich das nun wieder da rausbekommen in den "Basis"-Ordner?

Das Problem ist, dass bei bei #region eine Markierung brauche, daher kann ich nicht einfach "#region" eingeben und dann tab drücken...

Ich hoffe das ist einigermaßen Verständlich 🙂

Grüße,
Markus

06.02.2008 - 08:14 Uhr

Hallo,

ich habe ein Problem, und zwar arbeite ich mit Visual Studio 2008 und einem WF-Project (Workflow-Foundation). Wenn ich nun Builde kommt es immer wieder vor, dass Fehler auftauchen, die zwar richtig beschrieben sind, aber es fehlen sowohl File als auch Line/Column angaben, d.h. ich kann den Fehler nicht finden anhand der Error-List (nur anhand der Beschreibung, was ziemlich mühsam ist). Wenn ich auf einen Fehler Doppelklicke kommt:

---------------------------
Microsoft Visual Studio
---------------------------
Cannot open file 'D:\Dev\Test\WorkflowProject'. Verify that the file still exists and then try again.
---------------------------
OK   
---------------------------

Der Ordner ist korrekt. Weiß jemand an was das liegen kann?

11.01.2008 - 10:18 Uhr

Hallo,

ich möchte testen, wie es sich verhält, wenn mehrere Workflows parallel gestartet werden sollen. Ich habe mir dazu einen DelayWorkflow gebastelt (sequenziell), der nur eine Delay-Activity enthält. Dazu habe ich dann eine Konsolenanwendung erstellt:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Workflow.Runtime;
using System.Threading;
using PerformanceWorkflows;

namespace ConsoleApplication
{
   class Program
   {
      static AutoResetEvent waitHandle = new AutoResetEvent(false);
      static int completed = 0;

      static void Main(string[] args)
      {
         Console.Write("Enter Number of Workflows to start: ");
         int workflowCount = Convert.ToInt32(Console.ReadLine());

         WorkflowRuntime workflowRuntime = new WorkflowRuntime();
         workflowRuntime.WorkflowCompleted += Workflow_Completed;
         workflowRuntime.StartRuntime();

         for (int i = 0; i < workflowCount; i++)
         {
            Type type = typeof(DelayWorkflow);
            WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(type);
            workflowInstance.Start();
         }

         Console.WriteLine(workflowCount.ToString() + " Workflows started...");

         waitHandle.WaitOne();

         workflowRuntime.StopRuntime();

         Console.WriteLine();
         Console.WriteLine(completed.ToString() + " Workflows completed.");
         
         Console.ReadLine();
      }

      private static void Workflow_Completed(object sender, WorkflowCompletedEventArgs e)
      {
         completed++;
         waitHandle.Set();
      }
   }
}

Die Ausgabe sieht allerdings so aus:


Enter Number of Workflows to start: 10
10 Workflows started...

2 Workflows completed.

Die Frage ist nun: warum werden nur 2 Workflows abgeschlossen?

Viele Grüße,
Markus

26.11.2007 - 11:24 Uhr

Hallo,

ich habe ein Problem: ich füge TreeNodes zu einem TreeView hinzu und zeichne mit DrawNode einen Text für jede Node dazu (an einer bestimmten Stelle). Nun kann es sein, dass der selbst gezeichnete Text breiter ist als der sichtbare Bereich, aber die Scrollbar wird nicht automatisch angepasst. Wie kann ich nun den "Datenbereich" des Treeviews verbreitern?

Grüße,
Markus

22.08.2007 - 11:25 Uhr

Hallo,

ich möchte mittels WebDAV die Verzeichnisse eines Webverzeichnisses auflisten. Dazu habe ich folgende Klasse;


using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Net;
using System.IO;

namespace WebDAV
{
   public static class WebDAV
   {
      public static void GetDirectoryListing(string rootUrl)
      {
         HttpWebRequest Request;
         WebResponse Response;
         string strQuery ="";
         byte[] bytes = null;
         Stream RequestStream = null;
         Stream ResponseStream = null;
         XmlDocument ResponseXmlDoc = null;
         XmlNodeList DisplayNameNodes = null;

         try
         {
            strQuery = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><D:propfind xmlns:D=\"DAV:\"><D:allprop /></D:propfind>";
            Request = (System.Net.HttpWebRequest)HttpWebRequest.Create(rootUrl);
            Request.Method = "PROPFIND";

            bytes = Encoding.UTF8.GetBytes((string)strQuery);
            Request.ContentLength = bytes.Length;
            RequestStream = Request.GetRequestStream();
            RequestStream.Write(bytes, 0, bytes.Length);
            RequestStream.Close();

            Request.ContentType = "text/xml";
            Response = (HttpWebResponse)Request.GetResponse();
            ResponseStream = Response.GetResponseStream();

            ResponseXmlDoc = new XmlDocument();
            ResponseXmlDoc.Load(ResponseStream);
            //hier kommt später die Verarbeitung des XMLs

            ResponseStream.Close();
            Response.Close();
         }
         catch(Exception ex)
         {
            Console.WriteLine(ex.Message);
         }
      }
   }
}

Leider erzeugt Response = (HttpWebResponse)Request.GetResponse(); immer eine Exception:


The remote server returned an error: (400) Bad Request.

Weiß jemand an was das liegen kann? Leider gibt die Meldung nicht viel her...

08.08.2007 - 18:49 Uhr

Hallo,

hast du inzwischen schon Fortschritte gemacht? Mich würde dieses Thema nämlich auch interessieren, leider hab ich noch nicht viel Informationen dazu gefunden...

09.07.2007 - 18:20 Uhr

Hab es jetzt mal so gelöst, dass ich im Hintergrund einen Thread laufen lasse, der mir aus allen Punkte die sichbaren rausfiltert und dieses Array (mit den darzustellenden Punkten), permanent aktualisiert. Um das ganze etwas zu beschleunigen, wird zuerst die Zeichenfläche selbst aktuell gehalten, und dann im "Idle"-Modus links und rechts davon eine Art Cache aufgebaut, dann kann man flüssig scrollen. Der Cache wird dann jeweils wieder aktualisiert, wenn die Ansicht verändert wurde. Funktioniert eigentlich ganz gut, hab testhalber mal 100.000.000 Punkte generiert, und es läuft in sehr akzeptabler Zeit, und der Speicherbedarf hält sich in Grenzen, da immer jeweils nur ca. 5000 Punkte berechnet werden...
Aber ich werde mir die Vorschläge mal anschauen 🙂

09.07.2007 - 07:07 Uhr

Naja, das Problem ist nicht die Darstellung selbst, sondern eher das Caching, ich kann ja nicht bei jedem Neuzeichnen alle Punkte neu berechnen, und auch nicht über alle Punkte neu iterieren. Ich müsste irgendwie eine Klasse verwenden, die mir im Hintergrund die für die aktuelle Darstellung notwendigen Punkte ausliest und diese ausgibt oder so. Aber wie macht man das genau?

05.07.2007 - 14:46 Uhr

Hallo,

ich habe eine Datei mit ca. 5 Mio. Messdaten oder mehr (immer je ein X und Y-Wert). Wie kann ich diese Daten nun möglichst performant darstellen (mittel GDI+)? Man soll dynamisch zoomen, scrollen können usw.. Mir ist soweit klar, dass ich immer nur einen Teil der Daten darstellen kann, aber wie gehe ich da jetzt am besten vor?

Grüße,
Markus

24.05.2007 - 13:11 Uhr

Hallo,

die VS2005-IDE verwendet ja einige recht sinnvolle Controls, z.b. die Boxen, die sich am Bildschirmrand einklappen und automatisch aufgehen, wenn man mit der Maus darüber fährt, oder die ToolBox (zum Gruppieren von Elementen). Gibt es diese Controls auch als Controls zum verwenden in eigenen Programmen? Das wäre echt super...

Grüße,
Markus

22.05.2007 - 15:08 Uhr

Das Problem ist, wie bringe ich die Daten zum GUI und zurück? Ich dachte schon daran, in der GUI-Klasse eine Member-Variable vom Typ der Klasse zu deklarieren und die Instanz der Klasse im Konstruktor der GUI zu übergeben. Dann kann ich im Konstruktor die übergebene Instanz in der Member-Variable speichern, bearbeiten oder so in der Art....
Wie macht man das nun am geschicktesten?

22.05.2007 - 14:56 Uhr

Is leider etwas schwer zu beschreiben, aber ich versuchs mal:

Ich habe ein Programm erstellt, dass stellt eine "Basis" für verschiedene Aktionen dar, wie z.B. Datei kopieren, Datei löschen usw.
Nun weiß das Programm aber nicht, welche Aktionen verfügbar sind. Dazu sucht es nach Klassen, die von einer bestimmten (abstrakten) Klasse abgeleitet sind. Diese Klassen stellen dann die Aktionen dar. Jede dieser Klassen enthält die notwendigen Members sowie einen Run-Befehl zum ausführen der Aktion. Nun enthält das Hauptprogramm eine Liste (vom Typ dieser abstrakten Oberklasse) mit Aktionen. Diese Liste kann auch in einer ListView-Control angezeigt werden. Nun soll man per Doppelklick eine Aktion bearbeiten können, dazu soll ein für die Aktion passendes Fenster angezeigt werden und die Controls darauf sollen mit den vorher eingestellten Daten gefüllt werden. Nach dem Ende des Bearbeiten sollen die Änderungen übernommen werden. Die Aktionen können jedoch auch komplexer werden als nur "Datei kopieren" usw.

Grüße,
Markus

22.05.2007 - 14:24 Uhr

Hallo,

ich habe ein paar Klassen, die bestimmte Members und Methoden enthalten. Nun möchte ich für jede Klasse ein Control schreiben, mit dem man diese Members bearbeiten kann. Die Frage ist jedoch, wie kann das Control dann auf die Klasse zugreifen? Das Problem ist zusätzlich, ich arbeite mit Reflection, d.h. das Hauptprogramm ist sich der Existenz der Klassen nicht bewusst.

Bis jetzt löse ich es so, dass ich den "Designer"-Code in der Klasse mit drin habe, und dass eine Methode ein Panel mit allen Controls zurückgibt. Der Vorteil ist, ich kann direkt auf die Members zugreifen, da die Controls ja auch Members der Klasse sind. Wenn ich die Controls als extra Klasse schreibe, geht das ja nicht mehr. DataBinding kommt auch nur bedingt in Frage, da ich u.a. ListViews usw. benutze. Nachteil ist allerdings, dass man die Oberfläche von Hand bearbeiten muss, was auch nicht so toll ist...

Grüße,
Markus

12.03.2007 - 20:11 Uhr

Hallo,

ich möchte folgendes machen. Ich brauche für ein Programm eine Art kleinen "Script-Editor", das ganze soll so aussehen:
Man soll eine Liste erzeugen können, die verschiedene Aktionen beinhaltet, z.b. "Programm ausführen", "Datei kopieren", "Datei löschen" usw.

Nun möchte ich für jede Aktion eine eigene Klasse schreiben, die dann die notwendigen Parameter (Member-Attribute und Properties), eine Run-Methode und eine Methode ToString() enthält. Die ToString()-Methode soll z.b. ausgeben "Kopiere Datei 'a' nach 'b'". Außerdem soll es zu jeder Art von Aktion ein Formular geben, dass die entsprechenden Controls enthält, die zum Bearbeiten oder Erstellen einer Aktion notwendig sind. Dieses Formular soll auch irgendwie mit der Klasse verknüpft sein.
Des Weiteren sollte es möglich sein, das Ganze durch neue Klassen um neue Aktionen zu erweitern. Und wie kann ich dann diese Objekte in eine Liste packen (sie sind ja dann von verschiedenem Typ)?

Wie kann ich sowas nun am besten realisieren?

19.02.2007 - 11:53 Uhr

Hallo,

ich bin gerade dabei, mich mit der Webentwicklung (ASP .NET 2.0) zu beschäftigen und habe ein paar Frage, bitte nicht lachen.

  1. Ich habe (in einer SQL Server-Datenbank) eine Tabelle mit Benutzern. Wie kann ich nun auf irgendeiner Seite alle Benutzer ausgeben (z.b. für jeden Benutzer eine Tabelle mit Username und User-Id oder so)?
  2. Wie kann ich "dynamische Links" erstellen, sprich wie kann ich gezielt auf Werte in der Datenbank zugreifen, und z.B. einen Link erstellen und die User-ID eines Users übergeben, z.B. in der Tabelle aus 1) für jeden Benutzer einen Link mit profile.aspx?id="userid" ausgeben?

Grüße,
Markus

18.02.2007 - 22:05 Uhr

Hallo,

ich möchte folgendes machen (vereinfacht): ich habe eine Tabelle mit 3 Spalten, ID1, ID2 und Wert.

Nun habe ich ein Formular, in das ich 2 IDs eingeben kann und einen Wert. Ich möchte nun, dass die Kombination aus eingegebenen IDs in der Tabelle gesucht wird, und falls vorhanden, der eingegebene Wert zum Wert in der DB dazugezählt wird. Falls die Kombination noch nicht existiert, soll sie angelegt werden (mit dem eingegebenen Wert). Jede Kombination soll nur einmal vorkommen.
Nun soll es jedoch egal sein, welche ID zuerst eingegeben wurde.

Danach möchte ich eine Abfrage, bei der ich eine ID angebe (als Kriterium). Im Ergebnis soll dann jeweils die andere ID + zugehöriger Wert angezeigt werden. Auch hier soll egal sein, in welcher Spalte die angegebene ID steht.

Ist sowas nun irgendwie möglich? Hab momentan leider keine Idee dazu, außer alles von Hand zu vergleichen.

Grüße,
Markus

17.02.2007 - 21:00 Uhr

Hallo,

ich möchte gerne lernen, wie man Websites auf Basis von ASP .NET 2.0 erstellt. Nun meine Frage: ich habe Visual Studio 2005 und SharePoint Designer 2007 (MSDNAA).
Folgende Sachen möchte ich machen:

  • sauberes Strukturieren
  • leichtes Einbinden neuer Seiten
  • Benutzerverwaltung (Rollenverwaltung)
  • Datenbankanbindung
  • Verwendung von AJAX (http://ajax.asp.net)

Sind diese Sachen mit VS alleine möglich, oder ist es möglich/sinnvoll, SharePoint Designer dafür mit einzusetzen? Oder vielleicht was ganz anderes?

Ich entwickle bereits eine Weile mit C# und kann auch HTML+PHP.

Grüße,
Markus

19.09.2006 - 15:59 Uhr

Genau das suche ich auch, er soll einfach bei jedem Release-Build die Version erhöhen...

18.03.2006 - 16:35 Uhr

Ok, hat sich erledigt 🙂

Es lag daran, dass der Funktion nicht der Freigabepfad, sondern der Freigabename übergeben werden muss...

16.03.2006 - 10:25 Uhr

Hallo,

ich habe folgenden Code hier gefunden und möchte diesen verwenden:
http://www.codeproject.com/csharp/accessctrl3.asp?df=100&forumid=180919&exp=0&select=1152481&tid=1152122#xx1152481xx

Hab dem Code noch die Zeile

void IDisposable.Dispose() { }

hinzugefügt, anders wollte ers nicht kompilieren.

Wenn ich nun in meinem Programm folgendes versuche:

ShareObjectSecurity Sec = new ShareObjectSecurity(path);

komt die Meldung

Unerwarteter Methodenfehler 2310.

wenn ich die Methode aufrufe.

Kann mir einer Sagen, was das sein kann? Der Fehler zeigt auf diese Zeile:

public ShareObjectSecurity(string fileShare): base(false, ResourceType.LMShare, fileShare, AccessControlSections.All)

Grüße,
Markus

15.03.2006 - 22:20 Uhr

Hallo,

ich arbeite gerade mit der Rechteverwaltung von Dateien und Ordnern und habe folgendes Problem:

Ich möchte einem Order den User "ERSTELLER-BESITZER" zuordnen. Dies mache ich so:


        public static void AddDirSecurity(string path)
        {
            FileSecurity fSecurity = File.GetAccessControl(path);
            
            System.Security.Principal.SecurityIdentifier Id = 
                    new System.Security.Principal.SecurityIdentifier(System.Security.Principal.WellKnownSidType.CreatorOwnerSid, null);
            FileSystemAccessRule rule = new FileSystemAccessRule(Id, FileSystemRights.FullControl, AccessControlType.Allow);
            fSecurity.AddAccessRule(rule);

            File.SetAccessControl(path, fSecurity);
        }

Aber das geht nicht. Mit anderen Typen gehts...
Weiß jemand an was das Liegt?

15.03.2006 - 14:55 Uhr

Möchte es nach Variante 2 machen. Habe jetzt folgendes versucht, aber es klappt nicht. Hier mal der Code:


namespace Testprojekt
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public void closeForm(string text)
        {
            button1.Text = text;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 form = new Form2("Hallo");
            form.FormClosing = closeForm(form.button1.Text); //das hier geht nicht
            form.Show();
            
        }
    }
}

und


namespace Testprojekt
{
    public partial class Form2 : Form
    {
        public Form2(string text)
        {
            InitializeComponent();
            button1.Text = text;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
        }
    }
}

Habe auf beiden Forms je einen public Button. Was mache ich falsch?

Bei der o.g. Zeile kommt:

FDas Ereignis "System.Windows.Forms.Form.FormClosing" kann nur links von += oder -= verwendet werden.

Grüße,
Markus

15.03.2006 - 13:21 Uhr

Hallo,

ich beschäftige mich seit einer Weile mit C#, aber ich weiß immer noch nicht, wie ich mehrere Forms richtig verwende 🙂

Also ich füge dem Projekt eine 2. Form hinzu. Wenn ich diese mit Form1 öffnen will, mache ich z.B.


Form2 test = new Form2();
test.show();

Soweit, so gut, aber wie kann ich duch einen Klick auf Button1 auf Form2 (=test) auf eine Funktion in Form1 zugreifen? Oder auf Variablen?

Güße,
Markus

14.03.2006 - 16:45 Uhr

Möchte aber, dass man die Teile nicht sieht, muss nur darauf zugreifen können...

14.03.2006 - 16:35 Uhr

Hallo,

ich arbeite gerade mit Active Directory (ADSI) und C#. Nun habe ich das Problem, dass ich nicht genau weiß, wie ich die Daten am besten organisieren kann. Wenn ich ein AD-Objekt habe, dann besteht das (u.a.) aus folgenden Dingen: Name, Pfad, Parent-Name, Parent-Pfad.

Der Name sieht z.B. so aus: CN=Max Mustermann

Ich möchte das ganze in einen Treeview organisieren, also so:

Benutzer
--Max Mustermann

Soweit klappt auch alles schon, aber eben noch mit CN= davor, oder OU= usw. Das will ich weg haben.

Nun brauche ich aber für jedes Objekt im Treeview die o.g. 4 Dinge und den gesamten Namen mit "CN=".

Wie kann ich sowas realisieren? Bin da etwas ratlos, TreeNodes haben ja keine "Subitems" oder sowas...

Grüße,
Markus

14.03.2006 - 15:19 Uhr

Hallo,

ich habe folgenden Code:


            DataTable DT = new DataTable("Namen");
            DataRow DR;

            DT.Columns.Add("Vorname", System.Type.GetType("System.String"));
            DT.Columns.Add("Nachname", System.Type.GetType("System.String"));

            DR = DT.NewRow();
            DR["Vorname"] = "Otto";
            DR["Nachname"] = "Mustermann";
            DT.Rows.Add(DT);

            DR = DT.NewRow();
            DR["Vorname"] = "Max";
            DR["Nachname"] = "Mueller";
            DT.Rows.Add(DT);

Wie kann ich nun z.b. mit einem MessageDlg "Otto" anzeigen, oder "Max" usw.?

Grüße,
Markus