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 echdeneth
Thema: Dynamische Klassen für ObservableCollection (Einlesen von CSV)
Am im Forum: GUI: WPF und XAML

Zitat von Abt
Von welcher UI Technologie sprichst Du denn? WinForms? WPF? Blazor? Xamarin?
Sorry, WPF/MVVM

Thema: Dynamische Klassen für ObservableCollection (Einlesen von CSV)
Am im Forum: GUI: WPF und XAML

Moin,

in der Annahme ich bin hier im richtigen Bereich - ich möchte CSV Einlesen deren Spaltenumfang und Datentyp nicht feststehen.
Bei der Verwendung von DataTable bin ich auf das Problem gestoßen dass manche Spalten nicht richtig Dargestellt wurden und es andere Probleme gab:

Überzählige Spalten - (evtl.) wohl eher ein Problem beim Einlese-Algi
Format-Exceptions bei manchen Spalten
...

EIne ObservableCollection wäre hier eine gute Option aber ich weiss nicht wie ich die für die Header des DataGrid benötigten Klassen dynamisch anhand der Spalten der CSV erzeugen kann.

Für Tipps und DesignPattern wäre ich dankbar.

Thema: Syntax-Highlightning mit Richtextbox - DesignPattern? - MVVM oder Codehehind?
Am im Forum: GUI: WPF und XAML

Moin,

Ich möchte ein Code-Snippet-Manager(C#, Php, XAML, SQL, etc...) in WPF schreiben und bin auf ein kleines Problem gestoßen.
Für das Syntax-Highlightning benötige ich eine Richtextbox. Nun bringt es nichts den Aufbau der Rtb in XAML zu schreiben, diese muss leer sein und mit beliebigen Content gefüllt werden.

Nun kann ich ja einer Rtb keinen "Content" oder "Text" zuweisen ähnlich einer Textbox oder Contentcontrol. Git es einn DesignPattern für den "Content" einer Rtb?
Besser Codebbehind als MVVM? EIn Fingerzeig in die richtige Richtung würde schon genügen.

Ich habe mir Lösungen durch Google angesehen kann diesen jedoch wenig bis nicht sentnehmen.

Danke

Marko Rothe

Thema: TextBox - fehlendes erstes Zeichen
Am im Forum: GUI: WPF und XAML

Ich gelobe Besserung, mea culpa...

Thema: TextBox - fehlendes erstes Zeichen
Am im Forum: GUI: WPF und XAML

Zitat von JimStark
Wieso nicht einfach https://docs.microsoft.com/de-de/dotnet/api/system.math.round?view=net-5.0 ?

Würde dann bei einer Eingabe von 100,225 nicht 100,23 zurückgegeben werden statt 100,22?
Muss das mal abchecken wie das sein soll...

Thema: TextBox - fehlendes erstes Zeichen
Am im Forum: GUI: WPF und XAML

Zitat von chilic
Und was passiert wenn du weiter tippst mit dem Wert?
also 1, 0, 0, 0, 0 ...
=> 0, 0, 0, 0 ...
Zitat von chilic
Den Ausdruck "if ((value % 1) > 0)" finde ich interessant. Da sollte ein Kommentar ran, der aussagt was das soll.
Ja, das stimmt...
Zitat von chilic
Length == 3 wird nur aktiv wenn genau drei Nachkommastellen eingegeben werden. Was wenn jemand eine Zahl mit 5 Nachkommastellen hineinkopiert?
Daran habe ich gar nicht gedacht, wird korrigiert

Thema: TextBox - fehlendes erstes Zeichen
Am im Forum: GUI: WPF und XAML

Moin,

in meinem Projekt (MVVM) habe ich, unter anderem, eine Textbox mit Binding:


          <TextBox materialDesign:HintAssist.Hint="Bezeichnung "
                         Style="{StaticResource MaterialDesignFloatingHintTextBox}"
                         FontSize="18"
                         Padding="0" Grid.Column="1" 
                         VerticalContentAlignment="Bottom" 
                         HorizontalContentAlignment="Right"
                         Text="{Binding Wert, UpdateSourceTrigger=PropertyChanged, StringFormat=D, Mode=TwoWay}">
          </TextBox>

Gebunden an Property einer Klasse:


        public decimal Wert
        {
            get => _wert;
            set
            {
                if ((value % 1) > 0)
                {
                    string[] v = value.ToString().Split(',');
                    if (v[1].Length == 3) return;
                }
                _wert = value;
                NotifyPropertyChanged();
                NotifyPropertyChanged("MwSt");
                NotifyPropertyChanged("BruttoWert");
            }
        }
Das im if ist mein bescheidener Versuch Nachkommastellen über 2 zu verhindern.

Wie gesagt, die erste Eingabe klappt problemlos, wenn ich diese aber lösche, und "1000" eingabe erscheint nur "000" - laut Einzelkschritt wird die "1" aber in "Wert" geschrieben...
Habe auch keinen Ansatz...

Danke für Hilfe

Thema: Asyncrones laden einer ObservableColl. und syncron. mit DataGrid
Am im Forum: GUI: WPF und XAML

Zitat von Abt
... sieht mir


private SQL MySQL = new SQL();
nicht gerade nach einer guten Umsetzung aus...
Ja, Sorry, gefällt mir auch nicht besonders, ich weiss (noch) nicht wie ich es anders machen soll.
(Darüber sollen die Enumerables der SQL Anfragen zurückgegeben werden)
Zitat von Abt
Jo, dann mach erst mal Deine Implementierung sauber über async/await, was die Basis ist.
Ohne das machts wenig Sinn...
Jo, also zurück auf die Schulbank...
(kleine Ausrede: async und co waren in der Ausbildung nicht enthalten...)

Thema: Asyncrones laden einer ObservableColl. und syncron. mit DataGrid
Am im Forum: GUI: WPF und XAML

Moin,

ich versuche in MVVM eine ObservableCollection (OC) asyncron zu laden und die Daten in einer DataGrid anzeigen zu lassen.

Basis ist folgende:


private SQL MySQL = new SQL();
public ObservableCollection<Model> OC { get; set; }
...
OC = new ObservableCollection<Model>(MySQL.GetSomeStuff()); //
Und eine Datagrid, irgendwelcher Daten harrend...

Also habe ich versucht für ein besseres Verständnis und um hinter die Mechanik von await/async/etc. zu kommen und zu Verstehen, fertige Lösungen zu testen und analysieren.
WPF-Performancetipp Teil 2: „ObservableCollection“ synchronisieren


BindingOperations.EnableCollectionSynchronization(OC, _listLock);
Task.Run(() => LoadData());

private async void LoadData() // Fehlermeldung: In dieser Async-Methode fehlen die "await"-Operatoren, weshalb sie synchron ausgeführt wird.
        {
            OC = new ObservableCollection<Model>(MySQL.GetSomeStuff());
        }
hat nicht funktioniert... OC.Count = 0


Eine andere Vorgehensweise war:


            App.Current.Dispatcher.BeginInvoke((Action)delegate ()
            {
                OC = new ObservableCollection<Model>(MySQL.GetSomeStuff());
            });
OC.Count = 300+, aber DataGrid Leer...

XAML:

    <Window.DataContext>
        <vm:MainViewModel />
    </Window.DataContext>
...
                    <DataGrid 
                              AutoGenerateColumns="False"
                              ItemsSource="{Binding OC, IsAsync=True}"
                              SelectedItem="{Binding SelectedRow}"
                              CanUserAddRows="False"
                              IsReadOnly="True"
                              RowDetailsVisibilityMode="{Binding RowDetailsVisibilityMode}"
                              materialDesign:DataGridAssist.CellPadding="8,12,8,12"
                              Margin="0,0,0,12" Grid.Row="1" 
                              SelectionMode="{Binding SelectionMode}"
                              SelectionUnit="FullRow">
                              ...
                  </DataGrid>

Ich habe leider keine Ahnung was ich falsch mache...

Thema: Klassendesign mit ObservableCollection
Am im Forum: Rund um die Programmierung

Zitat von Abt
(Eine zB. Absenden() Aktion in einem Business Objekt "Angebot" ist eher kein gutes, modernes OOP Design).

Sorry, ich bin die Arbeit mit Klassendiagrammen nicht gewohnt...
Ist ja auch nur eine erste Fassung.

Thema: Klassendesign mit ObservableCollection
Am im Forum: Rund um die Programmierung

(VS19/C#) Ist in Dia erstellt, für mein Prüfungsprojekt

Thema: Klassendesign mit ObservableCollection
Am im Forum: Rund um die Programmierung

Zitat von JimStark

Deine Feldernamen sehen ehr nach Java aus
Wurde mit Dia 0.97.2 erstellt, deiner Bemerkung folgend, darf ich annehmen, dass meine Wahl hinsichtlich der Zeichensoftware falsch war.

Thema: Klassendesign mit ObservableCollection
Am im Forum: Rund um die Programmierung

Moin,

auf die Gefahr hin hier nicht am richtigen Ort zu sein...

Ich muss an einem Klassendiagramm arbeiten, die Grundlegenden Mechaniken sind soweit geläufig, die Praxis fehlt mir aber.

EIne der Klassen enthält eine ObservableCollecion.
Nun bin ich mit nbicht sicher wie und ob ich den Datentyp und die Beziehung der OC richtig darstelle.


public ObservableCollection<Innentür> innentuerliste { get; set; }
Warenkorb enthält eine Auflistung von Türen

public ObservableCollection<Dekor> dekor{ get; set; }
Eine Tür enthält ein Dekor aus der OC (auch wenn ich darüber noch mal nachdenken muss...)
Es sollen Dekore ausgelesen werden und eines davon in der Klasse Innentür neu instanziert, in etwa...


Ich hoffe meine Anfrage war verständig.
Habe ich das richtig gemacht?

Danke.

Thema: Serialisiertes PHP Objekt deserialisieren/per RegEx auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke, hat geholfen

ich nehme an RegEx mag niemand

Thema: Serialisiertes PHP Objekt deserialisieren/per RegEx auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von Abt
PHP serialisiert in ein proprietäres Format. Das zu verwenden ist halt prinzipiell schon quatsch.
Leider ist das aber gar nicht so selten (vermutlich weil PHP Entwickler leider immer noch nichts von Standards verstehen).
Darauf habe ich kein Einfluss, ist aus WooCommerce exportiert und muss ich genau so nehmen
Zitat von Abt
Das Glück ist, dass man aber sehr viele Google Treffer hat, die einem die Lösung schon gibt.
Google Suche nach "c# serialized php object"
Mag nicht so aussehen , aber ich habe sehr lange gesucht und die meisten Suchergebnisse waren für mich nicht brauchbar...
oft wird auf das NuGet Paket verwiesen oder im falschen Kontext
Zitat von Abt
Hättest Du das einfach mal gegoogelt oder die Forensuche benutzt, dann wärst auch in unser anderes Thema dazu gekommen :-)
PHP serialize() in C# Array
Habe ich auch gemacht, DAS! habe ich aber nicht gefunden!
Den deserialisierer teste ich mal, ich hatte ja eigentlich gehofft das mit RegEx zu machen zumal ich aus dem ganzen String
der 2281 Zeichen lang ist nur 3 Werte benötige aber den regulären AUsdruck (noch) nicht hinbekomme

Thema: Serialisiertes PHP Objekt deserialisieren/per RegEx auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von witte
Warum splittest du den String nicht in ein Array, als Trennzeichen '"Value"' nehmen, dann im darunter gesplitteten Array[':'] drittes Element auslesen.

Ich probiere das mal, nach ";" trennen und den string im array nach "Value" auslesen...


s:5:"Value";s:2:"15"


s = String, Länge 5 - Wert "Value"
darauf folgt:
s = String, Länge 2 - Wert "15"

muss ich im ganzen serialisierten string machen

Thema: Serialisiertes PHP Objekt deserialisieren/per RegEx auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Die Zeichenkette ist nur ein Ausschnitt.

Die Quelle ist ein Serialisiertes PHP-Objekt, zu lang um das in ein Array einzulesen.
ich weiss nicht ob ich den kompletten string hier posten darf.

Thema: Serialisiertes PHP Objekt deserialisieren/per RegEx auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin,

ich habe ein serialisiertes PHP Objekt (Nein, Thema gehört nicht zu Web-Technologien),
dies möchte ich entweder deserialisieren oder per RegEx spezielle Werte auslesen.

Ausschnitt:
i:1;s:9:"UnitPrice";i:0;s:5:"Value";s:2:"15";s:9:"FieldName";s:20:"....

Nun muss der Wert nach Value ausgelesen werden.

serial = serialisiertes PHP Objekt
s = List<string> wo die Werte hinein sollen



                        var rx = new Regex("\"Value\"", RegexOptions.Compiled | RegexOptions.IgnoreCase);
                        Match match = rx.Match(serial);
                        while (match.Success)
                        {
                            s.Add(serial.Substring(match.Index + 14, 4).Replace("\"", ""));
                            match = match.NextMatch();
                        }
Das ist aber leider etwas schwammig....

Nun wollte ich es über:


var output = string.Join(";", Regex.Matches(serial, "\\\"(.*?)\\\"")
                                                   .Cast<Match>()
                                                   .Select(m => m.Groups[1].Value));
versuchen.

Ideal wäre es evtl wenn ich den Wert nach: s:5:"Value"; auslese, dies bekomme ich mit RegEx nicht hin.
Kann ich überhaupt eine solche Zeichenkette mit RegEx verwenden?
Ist dieser gedankengang Zielführend? oder soll ich mich besser an eine deserialisierung machen?
Gibt es für eine solche deserialisierung DesignPatterns?

Danke

Thema: Welche Möglichkeiten habe ich einen Kalender im "Outlook"-Style zu designen?
Am im Forum: GUI: WPF und XAML

Das "Grid mit SharedSizeGroup in einem ItemsTemplate" mache ich auch noch, dafür fehlt mir etwas Erfahrung.

Vorerst mache ich mich an Platoon's:
http://www.nullskull.com/a/1382/styling-the-wpf-calendar-to-resemble-outlooks-month-view-calendar.aspx
ran, nicht zwangsläufig im Outlook-Style eher im Material-Style aber es wird gut erklärt.

Danke

Thema: Welche Möglichkeiten habe ich einen Kalender im "Outlook"-Style zu designen?
Am im Forum: GUI: WPF und XAML

Moin, ich möchte wie angeteast in einer App einen Monatskalender (u.a.) erstellen,
in welchem Einträge/Termine erstellt werden können. Habe sowas leider noch nie gemacht.
Ausdrücklich nicht per NuGet, da so kein Lerneffekt.
Enthält ein <Calendar/> Element, WPF/MVVM kein Muss


Meine (unausgegorenen) beiden Ansätze bisher:

1. Ein Grid mit 7 Spalten und 5 Zeilen + 1 für Wochentage
- 35 Elemente die alle ein Binding brauchen?
- keine rechte Vorstellung von der Objekt/Klassenstruktur...


2. Ein Datagrid
- SpaltenHeader: Wochentage
- Klasse (Prop: Mo-So, Kalenderwoche, ...)
- Darstellung des Kalendermonats durch Kalkulatuion der Kalenderwoche oder mit <Calendar/>

gibt es noch andere Ideen?

Thema: ObservableCollection mit Umterklasse ObservableCollection auslesen
Am im Forum: Grundlagen von C#

Fehlermeldung: "Eine foreach-Anweisung kann nicht für Variablen vom Typ "MainViewModel.VersandDaten" verwendet werden, weil "MainViewModel.VersandDaten" keine öffentliche Instanz- oder Erweiterungsdefinition für "GetEnumerator" enthält."

"Wie poste ich richtig" ist manchmal schwer das Thema in den wenigen Worten zu formulieren...

Habe die Lösung:

           
 foreach (var item in VersandListeData)
            {
                var v = item.VersandDaten;
                foreach (var oc in item.OC) // <- musste auf die OC zugreifen...
                {
                    _octoXLSX.Add(new OCtoXLSX
                    {
                        ... // Hier wird VersandListeData für das schreiben in die XLSX aufbereitet
                    });
                }
            }

Gibt es Erfahrungswerte wie man per foreach z.B. eine OC in die Zellen schreibt?

Thema: ObservableCollection mit Umterklasse ObservableCollection auslesen
Am im Forum: Grundlagen von C#

Moin, ich wusste nicht genau wie ich mein Problem in der Überschrift beschreiben sollte...

Ich habe eine Observablecollection(OC) namens VersandDaten.
die Klasse enthält als Propertys wiederum eine OC (Versandpositionen) und eine Klasse mit Name/Anschrift etc.

Num muss ich für den Export in eine XLS jede Versandposition mit der Zugeordneten Adresse versehen.

Mein Ansatz:


            foreach (var item in VersandListeData)
            {
                
                foreach (var v in item.VersandDaten)
                {
// hier dann die Zeilen und Spalten für eine Klasse zusammenstellen mit welcher die XLSX befüllt werden kann.
                }
            }

Nur, mein Ansatz mit var v in item.VersandDaten funktioniert nicht, hat jemand eine Idee?
Ich möchte nur ungern jede Versandposition mit Adresse versehen.
Ich hoffe mich verständlich formuliert zu haben.

Danke

Thema: Wie kann ich aus drei DatePickern im CodeBehind mit SelectedDateChanged einen SQL-Filter erstellen?
Am im Forum: GUI: WPF und XAML

Datum A und B sind Von und Bis
Datum C meint ein spezifisches Datum

Beide suchen in der selben Spalte

... WHERE datum > 'DateA' AND < 'DateB
... WHERE datum = 'DateC'

es sollte klar sein, das bei einer Abfrage A und B beide ein Datum haben müssen und C keines
und umgekehrt...

ist in MVVM kein Ding - da käme ich allein drauf, in CodeBehind jedoch...

Thema: Wie kann ich aus drei DatePickern im CodeBehind mit SelectedDateChanged einen SQL-Filter erstellen?
Am im Forum: GUI: WPF und XAML

Moin, habe ein kleines Problem... (code behind)

Ich habe 3 DatePicker. Von / Bis und Datum

Von/Bis und Datum müssen sich dabei einander ausschließen (nullen)
da beide in MySQL diesselbe Spalte filtern sollen.

Nur resultiert eine Änderung im Datepicker ja im SelectedDateChanged Event.
Ich kann ja nicht in den Events der jeweiligen DP den/die anderen DP nullen.
Also habe ich es mit bool's und if 's probiert - ich komme nicht auf'n Zeiger...

Ich kann dem MurksCode ja mal hier bei Bedarf posten.
Hatte ja nie eine Notwendigkeit so etwas konstruieren zu müssen
und leider gibt Google da auch nichts her.

Thema: Wie einen Filter für SQL Abfrage per ComboBox, Toggle,TextBox, etc zusammenbauen?
Am im Forum: GUI: WPF und XAML

Moin, ich habe ein Projekt (MVVM) in welchem eine DataGrid mit aus MySQL eingelesenen Werten, sowie (aus der linken Seite) mehrere Filteroptionen enthalten sind.

ComboBox, ToggleButton, TextBox und DatePicker

Damit möchte ich den Query zusammenbauen.

Zwar habe ich eine grobe Vorstellung wie das bewerkstelligt werden kann, aber vielleicht habt ihr ja eine gute Idee.

Meine Soweit:
Binding an Property ->
Bei NotifyPropertyChanged()-Event: Aufruf Methode zum Abfragen aller Propertys ->
...

Beim "Zusammenbauen" bin ich mir jedoch nicht sicher

Danke im Vorraus für eure Ideen

Thema: Erstellung einer "Tabelle" mit Pakettarifinformationen für Abfrage
Am im Forum: Grundlagen von C#

Ich entferne den Code

Thema: Erstellung einer "Tabelle" mit Pakettarifinformationen für Abfrage
Am im Forum: Grundlagen von C#

Habe es hoffentlich fertig, Danke.

Thema: Erstellung einer "Tabelle" mit Pakettarifinformationen für Abfrage
Am im Forum: Grundlagen von C#

Zitat von lhyn
Hallo echdeneth,

Du könntest die Preise/Zonen auch über eine mathematische Funktion beschreiben und dann runden :D

Gruss Lhyn

Schön wärs...

Thema: Erstellung einer "Tabelle" mit Pakettarifinformationen für Abfrage
Am im Forum: Grundlagen von C#

Zitat von JimStark
Wo ist jetzt genau das Problem...
Jetzt, wo du es erwähnst...

Ich hatte es mit komplexer vorgestellt

Thema: Erstellung einer "Tabelle" mit Pakettarifinformationen für Abfrage
Am im Forum: Grundlagen von C#

Zitat von BerndFfm
Hört sich nach UPS an..
(Fenthols)Raben, aber Ja.