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 Console32
Thema: DB1 zu DB2 einzelne Felder kopieren mit Progressbar
Am im Forum: Datentechnologien

Leider kann man anhand des Schnipsels nicht sagen wo dein Problem liegt jedoch bezweifle ich eine Race-Condition da du ja entweder das event mit Canceld auf true oder false feuerst.

Kannst du die Stelle in deinem BackgroundWorker Posten an denen die events sind / an der du dafür sorgst das der worker sauber terminiert?

Thema: DB1 zu DB2 einzelne Felder kopieren mit Progressbar
Am im Forum: Datentechnologien

Wenn du das Ganze Performanter machen willst aber die Progress bar nicht verlieren willst kannst du auch einfach nach rowCount / 100 updaten (oder noch genauer pro balken in der Bar)

Wie viel das bringt hängt stark davon ab wieviele Zeilen du schreibst.

Thema: DB1 zu DB2 einzelne Felder kopieren mit Progressbar
Am im Forum: Datentechnologien

Wie hast die limits deiner Progressbar gesetzt
bzw geht sie auch von 0- 100 und dein ProgressPercentage auch ?

Thema: Zufallszahlen für ein Lottoprogramm erzeugen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Okay man lernt nie aus, ich dachte der Seed im standard Konstruktor ist immer der selbe. Der Link von dN!3L beschreibt deutlich besser auf welche Probleme ich hinweisen wollte.

Thema: Zufallszahlen für ein Lottoprogramm erzeugen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

nein du bekommst immer die gleichen zahlen wenn du dein Programm startest,
man sollte den Random Konstruktor nicht ohne Parameter aufrufen da zufallszahlen in einem Rechner einfach nicht Möglich sind. Bei einem Random object ohne Seed bekommt man immer wieder die selben Zufallszahlen.

Ich mach das meistens mit Random random = new Random((int)DateTime.Now.Ticks)

Thema: Beim Vergrößern/Erstellen einer Bitmap: System.AgumentException: Ungültiger Parameter.
Am im Forum: Grafik und Sound

Hast du dir angesehen welche werte dem Konstruktor übergeben werden? Oder bleiben deine Werte (faktor und höhe/breite) gleich?

Wenn du deine Objecte richtig .disposed und irgendwo dem GC auch Zeit gibst zu arbeiten sollte der speicher kein Problem sein.

Vl kannst du etwas mehr Code posten also nur das schnipsel.


PS: Bitte nimm dir den Post von MrSparkle zu herzen und versuch deine Beiträge lesbar zu halten.

Thema: Beim Vergrößern/Erstellen einer Bitmap: System.AgumentException: Ungültiger Parameter.
Am im Forum: Grafik und Sound

Hallo Hans232323,

Er sagt dir doch schon das deine Parameter nicht gültig sind, vielleicht siehst du dir nochmal die Werte an bei denen deine Exception auftritt.

also höhe und / oder breite * faktor ergeben einen ungültigen wert für den Konstruktor.

Thema: Wie wahrscheinlich ist, dass ein Stimmergebnis einer Zufallsstichprobe von der Gesamtheit abweicht?
Am im Forum: Rund um die Programmierung

Zitat von herbivore

Nehmen wir an, jedes denkbare Votum alle Wahlbeteiligten (keiner dafür, alle dagegen; einer dafür, alle anderen dagegen; zwei dafür, alle anderen dagegen, ... alle außer einem dafür, einer dagegen; alle dafür, keiner dagegen) ist gleichwahrscheinlich. Enthaltungen habe ich absichtlich (erstmal) nicht zugelassen.

Wenn du davon ausgehst ist das die Chance auf eine Mehrheit immer 50/50 weil du ja davon ausgehst das alle ergebnisse gleich wahrscheinlich sind.

Wenn du deine stichprobe noch mit einrechnest kommst du auf ein minimal anderes ergebniss abhängig von der größe der stichprobe.

zb fallen keiner dagegen bis 4 dagegen ja weg weil du schon weißt das min 4 dagegen und min 10 dafür sind somit kommst du dann auf irgendwas von 50,000001 : 49,999999

ich denke aber nicht das du davon ausgehen willst das jedes ergebniss gleich wahrscheinlich ist weil das ganze dann ja relativ wenig sinn bei kleinen stichproben hat?

Oder hab ich was falsch verstanden?

Thema: Debugen mit Hintergrund Thread / Probleme mit Serieller Kummunikation
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo herbivore,

soweit ich weiß mache ich nichts derartiges, wäre ja ein gröberes Problem wenn mein Backgroundworker irgendwo Window Messages rumfeuert.

eigentlich kann das ganze nicht sein da die Klasse die für meine Kommunikation verantowrtlich ist nichts von meinem gui Thread weiß. Das ganze läuft nur über diese Events und die sind Alle am ende eines Zyklus meiner "Arbeiter" Schleife.

Ich werd trotzdem mal sehen ob ich etwas ähnliches finde

Thema: Debugen mit Hintergrund Thread / Probleme mit Serieller Kummunikation
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo herbivore,

Ob mein BackgroundWorker bei dem Invoke nun stehen bleibt oder mit BeginInvoke nicht ist nicht das Problem, das Problem ist das der Worker in etwa so aussieht:


while
{
   Expensive BackgroundWork
   Communication
   Cheap GUI Events
}

Mal von der Standard Option "Break all Processes" ausgegangen.

Nun ist das Problem das wenn ich im GUI-Thread einen Breakpoint setzte dann wird der BackgroundWorker sehr wahrscheinlich in einem Kritischen Bereich der Kommunikation stehen bleibt.

Wenn ich dann weiter mache geht der Background Worker Flöten weil meine Hardware die Kommunikation abbricht.

nun wäre es Logisch die Option "Break all Processes" auszuschalten (Um zu erzwingen das der Worker an einem meiner Invokes stehen bleibt). Das hilft leider überhaupt nicht und ich hab keine ahnung wieso :S


Das ich Invoke und nicht BeginInvoke verwende hat auch Gründe, ändert aber nichts an meinem Problem.

Thema: Debugen mit Hintergrund Thread / Probleme mit Serieller Kummunikation
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo ich habe schon seit einer ewigkeit das Problem das ich bei jedem Breakpoint meinen Hintergrund Thread quasi "erschlage"

Weil die Communikation mit meiner Hardware immer irgendwo im Thread stehen bleibt und dann (was auch verständlich ist) nicht mehr Funktioniert.
Die Option im beim Debugger nicht alle Processe zu stoppen funktioniert leider auch nicht.
Wobei ich nicht verstehe warum er nicht bis zu meinem Event / Invoke weiterläuft und dann da stehen bleibt weil ich den GUI Thread ja angehalten habe.

Weiß jemand ob es eine Möglichkeit gibt das ganze zu umgehen (so das bei einem Breakpoint im GUI Thread der BackgroundWorker nicht irgendwo stehen bleibt)

oder muss man damit leben?

Thema: Bei eigener Ordner-Klasse den Root-Ordner speziell oder gar in eigener Klasse behandeln
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Warum brauchst du eine Methode um den typ deiner Referenz variable zu ändern das kannst du doch machen wann immer du willst

Oberklasse referenzOberklasse = referenzUnterklasse;

Und schon kannst du mit referenzOberklasse nur die Base Methoden aufrufen obwohl es sich um ein Element der Unterklasse handelt.

Jedoch halte ich deinen Ansatz für falsch (bitte nicht angegriffen fühlen), für mich klingt es logisch die unterscheidung des Parent Ordners mit Parent == null zu machen.
So wie auch (glaube ich) in jedem baum das Root object mit Parent == null zu finden ist.

Thema: TreeView, wenn alle Knoten expandiert sind Aktion auslösen?
Am im Forum: GUI: Windows-Forms

Ich weiß nicht ob TreeView Selbst eine Möglichkeit dafür zur verfügung stellt.

Du kannst aber rekursiv einfach alle Knoten durchgehen und überprüfen ob diese Expanded sind.

        private bool ChildNodesExpanded(TreeNodeCollection nodes)
        {
            bool result = true;
            foreach (TreeNode node in nodes)
            {
                if (node.Nodes.Count != 0)
                {
                    result = result && ChildNodesExpanded(node.Nodes);
                    result = result && node.IsExpanded;
                }
            }

            return result;
        }

Thema: Kulturunabhängige Konvertierung von bytes/chars nach ANSI-string und zurück
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Also das Encoding liefert bei mir wenn ich 0 übergebe "\0" zurück.

@herbivore:
ich wusste das die strings nicht null terminiert sind jedoch wusste ich nicht das ein string vollgefüllt mit "nichts" nicht das selbe für vergleichsoperatoren ist wie "".

ich hab jetzt mit ildasm die exe geöfnet und :

b == 0
b == 0x00
b == '\0'

resultieren im exakt selben IL code (zumindest bei mir) kannst du dir ansehen was bei dir da rauskommt?

sollte unter *SDK -> Tools zu finden sein.

Thema: Kulturunabhängige Konvertierung von bytes/chars nach ANSI-string und zurück
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Aso "" ist laut compair auch nicht das selbe wie "\0"
ich hab mal bei mir auf dem versucht mit ein paar verschiedenenen Culturen das Problem zu finden jedoch konnte ich das ganze nicht rekonstruieren.

Dennoch habe ich einen Vorschlag versuchs doch erstmal damit:

        static void Main(string[] args)
        {
            Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("ar-AE");

            string test1 = "";
            string test2 = ByteToString(0x00);

            Console.WriteLine(string.Compare(test1.Replace("\0", ""), test2.Replace("\0", "")).ToString());
            Console.ReadLine();
        }

        public static string ByteToString(byte __b)
        {
            return Encoding.Default.GetString(new byte[] { __b });
}

Thema: Synchronisation: Daten in einem anderen Thread weiterverarbeiten (Producer-Consumer)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Also ich glaube das es darum geht einen SerialPort Monitor zu machen nicht das yvesdaeschle einen Monitor zum Synchronisieren der Threads verwenden wollte.

aber wie herbivore gesagt hat muss da nichts sein besonderes gemacht werden wenn dein Parser die Packete nicht mehr verwendet.
Du fügst in deinem Event die Pakete einer Liste hinzu?

Thema: SourceSafe: Verhindern das (bestimmte) Daten schreibgeschützt geflagt werden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat
Es sollte möglich sein, dass man nur Dateien mit bestimmten Endungen auscheckt. Außerdem sollte es möglich sein, beim Einchecken anzugeben, dass die Dateien sofort wieder ausgecheckt werden (bzw. trotz Einchecken ausgecheckt bleiben).

Ich hab mich jetzt für diese möglichkeit entschieden auch wenn es nicht genau das ist was ich wollte(weil jetzt auch die SourceDaten immer ausgecheckt sind auch wenn ich mit ihnen fertig bin) aber für den augenblick muss es reichen

Thema: Zwei Objekte werden nicht als gleich erkannt, obwohl sie den gleichen Inhalt haben
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

nachdem vok eine Vokabel ist und ich annehme das du in deine Klasse Vokabel den != operator nicht überladen hast, ist klar das dieser Aufruf immer true liefert solange die beiden variablen nicht auf das !selbe! (das selbe nicht das gleiche ^^) element zeigen.

Woher soll der Compiler auch wissen wann die beiden Vokabeln gleich sind.
Daher verwendet er einfach einen Referenz vergleich.

Die Lösung dafür ist den != operator in deiner Klasse Vokabel zu überladen (den == solltest du in diesem zug auch überladen)

Thema: Clustering Algorithmus (k-Means) mit großen Datensätzen?
Am im Forum: Rund um die Programmierung

Leider versteh ich nicht ganz was deine Verschachtelte Select anweisung in der Ersten Funktion macht. Und ich bin auch mit dem Algorithmus nicht vertraut.

Jedoch kannst du das selbe mit diesem Code erreichen (spart dir einmal durchIterieren und eine Liste)

        private List<List<decimal>> Get_Centers(List<List<decimal>> data, List<int> mapping, int number)
        {
            var centers = new List<List<decimal>>();

            for (int i = 0; i < number; i++)
            {
                var values = data.Where(conditioner => mapping[data.IndexOf(conditioner)] == i);

                var averages = values.SelectMany(x => x)
                              .Select((x, m) => new { V = x, Index = m })
                              .GroupBy(x => (x.Index + 1) % values.ElementAt(0).Count)
                              .Select(g => g.Select(x => x.V))
                              .Select(selector => selector.Average()).ToList();

                centers.Add(averages);
            }
            return centers;
        }

Das Problem das ich sehe ist das IndexOf wieder durch die gesamte Collection iteriert:

Die Zweite funktion könnte so aussehen:


        private List<int> Mapping(List<List<decimal>> data, List<List<decimal>> centers)
        {
            var result = new List<int>();

            foreach (var point in data)
            {
                var collection = centers.Select(x => Euclidean_Distance(x, point));
                decimal min = collection.Min();

                int count = collection.Where(conditioner => conditioner == min).Count();

                result.Add(count);
            }
            return result;
        }

oder so: ob das jedoch sinn macht ist fraglich


        private List<int> Mapping(List<List<decimal>> data, List<List<decimal>> centers)
        {
            return data
                .Select(dataSelector => centers.Select(centerSelector => Euclidean_Distance(centerSelector, dataSelector))
                .Where(conditioner => conditioner == centers.Select(centerSelector => Euclidean_Distance(centerSelector, dataSelector)).Min()).Count()).ToList();
        }

Was mir hier aufgefallen ist das du für jeden schleifendurchlauf wieder das Minimum in der Collection suchst.

Thema: SourceSafe: Verhindern das (bestimmte) Daten schreibgeschützt geflagt werden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo talla,

Ich habe die Daten eingecheckt, (nachdem ich das Projekt gerade neu öffne oder eben gerade das Ganze Porjekt eingecheckt habe weil ich mit einer änderung fertig bin).

Dann starte ich mein Programm und an einigen stellen werden dann diese mdb/xml Daten geändert was jedoch nicht geht weil sie durch SourceSafe gelockt sind.

Nun ist mir klar das diese Daten eigentlich nicht ins SourceSafe gehören da sie durch das Programm verändert werden, jedoch hätte ich sie trotzdem gerne auf dem SourceSafe Server da das manuelle sichern nach jeder änderung viel aufwand ist.

Deswegen ist meine Frage ob es möglich ist gewisse Daten beim einchecken einfach nicht mit "ReadOnly" zu flagen (jedoch nur gewisse Daten, für alle Daten gibt es diese Option in den einstellungen)

PS: von SourceSafe wegzukommen liegt leider nicht bei mir.
PPS: Danke danke für den Hinweis

Thema: SourceSafe: Verhindern das (bestimmte) Daten schreibgeschützt geflagt werden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

Ich habe folgendes Problem:

Ich habe mein komplettes Project im SourceSafe eingecheckt:
Nun kommt es zu folgendem Problem manche der Daten werden im Programm verändert (xml / mdb) nun stehe ich vor dem Problem das die Daten durch SourceSafe gelockt sind, (was ja auch richtig ist) nun ist meine Frage:

Wie kann ich bestimmte files (automatisch) im SourceSafe aktuell halten und sie aber auf meinem lokalen Pfad nicht schreibgeschützt flagen?

Das es per hand geht weiß ich jedoch ist es viel aufwand bei jedem mal starten die entsprechenden files auszuchecken oder anderesrum die enstprechenden files auf dem sourceSafe server aktuell zu halten wenn sie nicht in meinem Projekt sind.

Gibt es dafür eine Möglichkeit?

Thema: Tabellen von einem mdb File in ein anderes Kopieren
Am im Forum: Datentechnologien

Ich habe die Länge gefunden sie steht in der Spalte 27

das eigentlich wichtige das Mapping von OleDbType auf den tatsächlen String sieht so aus:

private static string OleDbTypeToString(OleDbType type)
        {
            switch (type)
            {
                case OleDbType.Double:
                    return "Float";
                case OleDbType.DBTimeStamp:
                case OleDbType.DBDate:
                    return "DateTime";
                case OleDbType.Binary:
                    return "Binary";
                case OleDbType.Boolean:
                    return "Bit";
                case OleDbType.UnsignedTinyInt:
                    return "Byte";
                case OleDbType.TinyInt:
                    return "TinyInt";
                case OleDbType.Integer:
                    return "Integer";
                case OleDbType.Currency:
                    return "Currency";
                case OleDbType.Date:
                    return "DateTime";
                case OleDbType.Guid:
                    return "UniqueIdentifier";
                case OleDbType.Char:
                case OleDbType.WChar:
                    return "Text";
                case OleDbType.Single:
                    return "Real";
                case OleDbType.SmallInt:
                    return "SmallInt";
                case OleDbType.Numeric:
                case OleDbType.Decimal:
                    return "Decimal";
                default:
                    return "Unknown";
            }
        }

stammt aus dieser Tabelle (Data Type Mapping) und einem MSDN eintrag Ganz unten im Beispiel

Danke kann geclosed werden.

Thema: Tabellen von einem mdb File in ein anderes Kopieren
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: <AS Access 2003>

Hallo,

ich versuche gerade eine Methode zu schreiben die mir alle Tabellen einer Datenbank in ein bereits existirendes mdb file schreibt.

Zuerst habe ich es mit BulkCopy versucht jedoch funktioniert das leider nicht.

Deswegen versuche ich jetzt jede Tabelle einzelln auszulesen und zu erstellen,
nun stehe ich vor Folgendem Problem: Ich kann den SqlDatenTyp der Spalten nicht auslesen und wiederverwenden.

Hier mein Verwendeter Code bisher:

                using (OleDbConnection sourceConnection = new OleDbConnection(sourceDatabaseConnectionString))
                {
                    sourceConnection.Open();

                    DataTable tables = sourceConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
                    DataTable sourceTable = new DataTable();

                    foreach (DataRow table in tables.Rows)
                    {
                        string tableName = table["Table_Name"].ToString();
                        string selectCommand = "SELECT * FROM " + tableName + " ;";

                        OleDbDataAdapter sourceAdapter = new OleDbDataAdapter(selectCommand.ToString(), sourceConnection);
                        sourceAdapter.Fill(sourceTable);
                        sourceTable.TableName = tableName;

                        DataTable columns = sourceConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, tableName, null });
                        foreach (DataRow row in columns.Rows)
                        {
                            Console.WriteLine(row[3] + " " + (OleDbType)row[11]);
                        }
                    }

                }

Jedoch bekomme ich als OleDbType nur VarChar und keine länge dazu wenn es sich im einen VarChar Handelt

Nun weiß ich nicht wie ich diesen Datentyp dann weiter verwenden soll um in meinem Creat Command die Richtigen datentypen anzugeben?!

Oder gibt es vielleich generell andere möglichkeiten das zulösen?

Thema: Überladungen reduzieren mit Extension Methods oder doch irgendwie anders?
Am im Forum: Rund um die Programmierung

Wie schon talla gesagt hat am einfachsten wäre params:


        private void GetXYZ(int row, string tableName, params KeyValue[] keyValuePairs)
        {
            foreach (var item in keyValuePairs)
            {

            }
        }


    public struct KeyValue
    {
        private string key;
        private string value;

        
    }

Ich versteh dein Problem mit überladenungen hinten anfügen gerade nicht,
ja die KeyValuePairs müssen immer am ende stehen das sollte aber doch kein Problem sein oder?

Thema: DataGridViewCellValidate-Event bei Click auf TreeView ignorieren
Am im Forum: GUI: Windows-Forms

Hallo,

Ich stehe vor Folgendem Problem:

Ich verwende eine DGV das bestimmte Werte enthält, welche Werte angezeigt werden wird über einen TreeView gesteuert.

Die Werte in den DGV-Cellen müssen ein paar Bestimmungen erfüllen, dies Steuere ich über das DGVCellValidate ereigniss. Wenn sich Werte geändert haben und kein Fehler in den Cell vorliegt wird ein "SaveButton" enabled und man kann die Werte speichern,
muss man aber nicht.

Jetzt habe ich das Problem das die änderungen in den Cellen einfach verworfen werden sollen wenn ich einen anderen Knoten auf dem Baum anklicke.

Jedoch wird das TreeViewAfterSelect Event durch das DGVCellValidate blockiert sobald die Zelle einen Fehler enthält.

Nun ist meine Frage wie kann ich herausfinden das das DGV-CellValidate ereigniss durch einen Klick auf einen Knoten im TreeView ausgelöst wurde?

Oder gibt es eine alternative für dieses Probem?

Thema: Lässt sich eine IF Anweisung über config Dateien steuern?
Am im Forum: Rund um die Programmierung

du kannst doch einfach eine verzweigung machen?
und die Variable kannst du dan in die Config datei Speichern.

Oder hab ich was falsch verstanden? Ich sehe darin kein Problem auch wenn mir der Anwendungsfall schleierhaft ist.

       
 public enum OperationTyp
        {
            Equals,
            Greater,
            Lesser,
        }

        switch (operation)
        {
		case OperationTyp.Equals:
                     blablabla
                     break;
                case OperationTyp.Greater:
                     break;
                case OperationTyp.Lesser:
                     break;
       }

Thema: Consolen-Ausgaben des eigenen Programms bzw. einer DLL davon (in TextBox) umleiten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von ogre
@Console32: Ich wollte nicht den Umweg über ein Textfile gehen.

Das wollte ich damit auch nicht sagen, aber wenn man den stdout stream auf ein File leiten kann geht bestimmt auch noch etwas anderes.
Sowas in der Art habe ich gemeint Redirect stdout to a string

Wenn du den Stream in einer C++ DLL abfängst und als Rückgabewerte weitergibst sollte das ganze so funktionieren wie du es brauchst

Thema: Consolen-Ausgaben des eigenen Programms bzw. einer DLL davon (in TextBox) umleiten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich kann mich noch daran erinnern das wir in der Schulzeit mal als beispiel die stdout in ein Textfile umgeleitet haben, das habe ich dazu gefunden.

stdout umleiten

Wie das ganze in C# Funktioniert kann ich dir leider nicht sagen jedoch kannst du (falls du dazu nichts findest) die umleitung einfach in eine Weitere C++ DLL schachteln welche dir die Daten umleitet und dann diese DLL einbinden

Thema: Programm als Administrator laufen, ohne Bestätigung durch den Nutzer
Am im Forum: Rund um die Programmierung

Zitat
Deshalb gibt es die UAC, die den Benutzer (unabhängig von seinen eigenen Rechten) auf Adminzugriffe hinweist und seine Erlaubnis dazu einholt.

Wobei die Sinnhaftigkeit dieser dem User ins Gesicht geworfenen Nachrichten sowieso bezweifelt werden kann, ich kenne kaum jemand der sich die Mühe macht bei jedem mal klicken darüber nach zu denken.

Nachdem deine User ja sowieso nur eingeschränkte Kontan haben, weiß ich nicht wie kritisch es ist die UAC generell auszustellen.

War damals das erste was ich ausgeschalten habe, bin mir vorgekommen wie bei der Millionenshow... "Sind sie sich wirklich sicher..."

Thema: DataGrid validierung false => Editieren anderer Zellen nicht mehr möglich
Am im Forum: GUI: WPF und XAML

Wenn der Benutzer die Daten von hand eingibt kannst du ebenfalls auf das CellEndEditing Event reagieren, dieses Blockiert nicht.

Jedoch kann ich damit den Fehler einfach ignorieren / was beim Validate nicht mödlich ist weil der Fokus solange auf dem Feld bleibt bis der Fehler behoben ist.

Du müsstest dich dann selbst dagegen absichern das die Fehler behoben werden bevor die Daten verwendet werden.