Laden...

Forenbeiträge von Wilfried Ingesamt 193 Beiträge

18.10.2023 - 14:32 Uhr

Hallo.

Bevor du weitermachst, schau dir unbedingt diesen Artikel an: https://mycsharp.de/forum/threads/118261/artikel-mvvm-und-databinding! WPF und MVVM gehören zusammen. Du machst es dir sonst unnötig schwierig.

07.08.2023 - 21:32 Uhr

Im Code Behind steht normalerweise nichts. Dass steht alles im ViewModel. Schau dir den Link von Abt an. Besonders Punkt 2.1.

Fang am Besten mit Strings an. Das muss erstmal funktionieren.

23.07.2023 - 18:13 Uhr

Hääää, "schlecht bis gar nicht dokumentiert"????? Also, dem muss ich widersprechen. Schau mal hier: https://learn.microsoft.com/de-de/dotnet/api/?view=net-7.0 und noch tausende andere Seiten. Man muss sich natürlich damit beschäftigen.

23.07.2023 - 11:56 Uhr

dann schau mal hier: https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/operators/lambda-operator

Hab bei Google "C# ⇒" eingegeben, war gleich der erste Treffer.

14.06.2023 - 10:44 Uhr

Das sieht mir nach einem Grauverlauf aus, der da drüber liegt. Soll vielleicht einen 3D-Effekt erzeugen.

31.05.2023 - 23:11 Uhr

Bei deinem Code geht es sehr durcheinander zu. Aus allen möglichen Google-Ecken hast du wohl Code zusammengesucht.

Mal verwendest du das CommunityToolkit, mal ReactiveUI. Warum sollte in der Listbox Items falsch sein? Siehe hier: https://docs.avaloniaui.net/docs/controls/listbox
Die Commands der Button verwendest du nicht entsprechend dem MVVM-Pattern. Siehe hier: https://docs.avaloniaui.net/docs/data-binding/binding-to-commands

Mein Code sieht dann so aus: (Ich hab die Bilder mal weggelassen.)

    public class MainWindowViewModel : ViewModelBase
    {
        public MainWindowViewModel()
        {
            AddCommand = ReactiveCommand.Create(Add);
        }

        public AvaloniaList<ObservableBitmapAndText> ListBoxItems { get; set; } = new AvaloniaList<ObservableBitmapAndText>();

        public ReactiveCommand<Unit, Unit> AddCommand { get; }

        void Add()
        {
            ListBoxItems.Add(new ObservableBitmapAndText { Text = "blub" });
        }
    }
    public class ObservableBitmapAndText : ViewModelBase
    {
        private string _text;
        public string Text
        {
            get => _text;
            set => this.RaiseAndSetIfChanged(ref _text, value);
        }
    }
    <DockPanel LastChildFill="True">
        <Button Content="Add" Command="{Binding AddCommand}" DockPanel.Dock="Bottom"/>
        <ListBox DockPanel.Dock="Top" Name="listBox" Items="{Binding ListBoxItems}" Height="500" Width="500">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock  Text="Bild "/>
                        <TextBlock Text="{Binding Text}"/>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </DockPanel>
30.05.2023 - 20:38 Uhr

Warum MVVM erst später? Das ist so, wie: Ich möchte Autofahren, aber die Fahrerlaubnis mache ich später.

Nun zu deinem Problem. Ein Item kann nur ein Element aufnehmen. Möchtest du mehrere Elemente einem Item hinzufügen, benötigst du einen Container, wie Grid oder Stackpanel. Dieser sorgt dann dafür, dass die Elemente entsprechend angeordnet werden. Das kann man auch im Code machen, ist halt aufwendiger. Schau dir am Besten die Grundlagen von WPF an.

28.04.2023 - 20:49 Uhr

Ich kann nicht nachvollziehen, warum das ganze so gemacht wird. Gibt es da einen Grund? Was heißt "funktioniert nicht".

27.04.2023 - 21:09 Uhr

Hallo.

Schau dir unbedingt diesen Artikel an: [Artikel] MVVM und DataBinding | myCSharp.de ! WPF und MVVM gehören zusammen.

03.04.2023 - 22:25 Uhr

Am 1. April erstmal einen Riesen Schreck bekommen, dann an Aprilscherz gedacht. Am 2. April ins Grübeln gekommen. Und dann abends ein großes Ahhhh.

Nun zu einem Problem. Wenn ich in der Forensuche mir die Treffer als "Beitrag" anzeigen lasse, dann bekomme ich Ergebnisse. Wenn ich auf "Thema" umschalte und bei Inhalt durchsuchen der Button auf "Gesamter Beitrag" steht, dann bleibt die Suche leer.

Und wie kann man die Suchbegriffe Und-Verknüpfen?

09.03.2023 - 21:38 Uhr

Also ich nutze LiveCharts2. Ist zwar noch Beta, läuft aber stabil und ist sehr schnell. LiveCharts2
LiveCharts (v0) wird schon seit einigen Jahren nicht weiterentwickelt.

24.02.2023 - 18:05 Uhr

Setze mal ReadTimeout. Es kann sein, dass ReadLine ewig auf das Ende wartet.

24.02.2023 - 08:32 Uhr

Steht ja da, EndOfStream. Du liest in Zeile 23 ein Zeichen ein und testest es auf -1. Mit ReadByte wird aber die Zeichenposition um 1 erhöht. In Zeile 28 liest du den nächsten Wert. Erstens überspringst du damit ein Zeichen und zweitens kann dieses Zeichen dann auch -1 sein. Schau dir mal das an: BinaryReader.PeekChar Methode
int b brauchst du dann auch nicht mehr.
Was machst du eigentlich in Zeile 38?

23.02.2023 - 19:56 Uhr

Hallo.
Du schreibst jedes Zeichen in eine neue Zeile, ist bestimmt nicht so gewollt.
Dann testest du den counter auf 0, erst dann zählst du hoch. Das wird aber nicht passieren, da ja immer 0.
Und nutze using für den BinaryReader.

12.02.2023 - 17:24 Uhr

Hallo.

Wenn du die Methode 1 aufrufst, dann lass dir die Listen zurückgeben. Diese übergibst du als Argument der Methode 2.
Siehe hier: Methoden (C#-Programmierhandbuch)

08.02.2023 - 21:26 Uhr

Deine Ideen sehen ganz nach diesem Problem aus: [FAQ] Kommunikation von 2 Forms
Das ist unabhängig von der Oberfläche. Egal ob WPF oder Winforms. Schau dir unbedingt mal OOP an.

08.02.2023 - 19:39 Uhr

Hallo
Ich verstehe nicht, was du damit erreichen willst, aber da es sich hierbei um WPF handelt, solltest du dir unbedingt mal das ansehen: [Artikel] MVVM und DataBinding

04.02.2023 - 11:32 Uhr

Hallo

Da man aus unerklärlichem Grund seine eigenen Einträge nach kurzer Zeit nicht mehr bearbeiten kann!!!

siehe hier: Hello World! myCSharp auf .NET

Ebenfalls anders ist, dass Beiträge in Zukunft nur noch innerhalb eines gewissen Zeitraums editieren werden können, der derzeit 30 Minuten beträgt. Der Zeitraum ist nicht fix; wir müssen auch lernen, welcher Zeitraum hier sinnvoll ist.
Der Grund ist, dass in der Vergangenheit zu oft der Kontext selbst nach Wochen editiert wurde, sodass der Verlauf eines Themas nur noch schwer nachvollzogen werden konnte.

02.02.2023 - 21:20 Uhr

Schau dir mal Serilog an.

28.01.2023 - 18:36 Uhr

Binde die IrgendeineViewModelKlasse an den DataContext der View und die ItemsSource wird gebunden an Sammlung.

Siehe: [Artikel] MVVM und DataBinding

27.01.2023 - 17:12 Uhr

Hallo
schau dir mal das MVVM-Entwurfsmuster an.
[Artikel] MVVM und DataBinding

18.01.2023 - 14:06 Uhr

Die Anmerkungen stehen in meiner Signatur und sind allgemein gemeint.

12.01.2023 - 13:51 Uhr

so war das wohl nicht gemeint. Schau dir mal den Link an: SerialPort.DataReceived Ereignis und hier
Vom Seriellen Port empfangene Daten in eine Textbox schreiben

03.01.2023 - 16:15 Uhr

Ja, kann man mit C# machen. Egal, ob Winform oder WPF.

02.01.2023 - 17:02 Uhr

@CyborgBeta

zu Punkt 2 siehe hier:
Serialisieren und Deserialisieren von JSON-Daten in .NET
CsvHelper

zu allen anderen Punkten empfehle ich dir, dich mal intensiv mit C# zu beschäftigen: Einführung in C#

Und zum Thema:

Ich suche nach einer einfachen GUI-Tabelle, die durch einen (Big Data-)Algorithmus mit Inhalten gefüllt werden soll...

schau dir mal das an: [Artikel] Drei-Schichten-Architektur

Und wenn du dich für WPF entscheiden solltest, dann noch diesen Link: [Artikel] MVVM und DataBinding

02.01.2023 - 12:31 Uhr

Hallo

Ich geh mal davon aus, dass du eine App für Windows schreiben möchtest. Da gibt es zum Beispiel Winforms und WPF.
Beide haben unterschiedliche Controls zur Darstellung von Daten. Der Suchbegriff "Tabelle" führt mit Sicherheit ins Leere. "Datagrid" ist da besser.
Beide Technologien haben unterschiedliche Einstiegshürden und Anforderungen. Damit solltest du dich am Anfang beschäftigen.
Beide haben einen Designer. Man muss ihn aber nicht nutzen. Ich verwende seit Jahren WPF, nutze keinen Designer und komme damit sehr gut klar.
Nun noch einige Links:

WPF Kategorien von Steuerelementen
Steuerelemente für Windows Forms

23.11.2022 - 10:49 Uhr

Also ich würde ja MVVM einsetzen. Und anstelle Datagrid ein Listview.


        public ObservableCollection<JahresTabelle> Tabelle { get; set; }


        <ListView ItemsSource="{Binding Tabelle}" >
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Kunde" DisplayMemberBinding="{Binding Kunde}"/>
                    <GridViewColumn Header="Projekt" DisplayMemberBinding="{Binding Projekt}"/>
                    <GridViewColumn Header="Volumen">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <ItemsControl ItemsSource="{Binding Volumen}">
                                    <ItemsControl.ItemsPanel>
                                        <ItemsPanelTemplate>
                                            <UniformGrid Rows="1"/>
                                        </ItemsPanelTemplate>
                                    </ItemsControl.ItemsPanel>
                                    <ItemsControl.ItemTemplate>
                                        <DataTemplate>
                                            <TextBlock Text="{Binding}" Margin="0,0,3,0"/>
                                        </DataTemplate>
                                    </ItemsControl.ItemTemplate>
                                </ItemsControl>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                </GridView>
            </ListView.View>
        </ListView>

Und dann noch etwas schön machen.

14.11.2022 - 07:43 Uhr

Hallo
schau dir mal das an: LiveCharts2. Ist zwar noch beta, funktioniert aber schon sehr gut.

04.11.2022 - 13:48 Uhr

grübel grübel
Was willst du uns mit dem Beitrag sagen? Gehört der Code zum Text? Ich verstehe nicht, was du gemacht hast und was du willst.
Ich vermute etwas, das würde aber bedeuten, dass du meinen Beitrag nicht gelesen/verstanden hast.

04.11.2022 - 07:46 Uhr

Indem du zu dem alten Wert den neuen Wert addierst. Das funktioniert natürlich nicht mit String. Du musst die Eingaben also vorher in eine Zahl umwandelt. Stichwort: Parse
How to convert a string to a number (C# Programming Guide)

25.10.2022 - 09:23 Uhr

Hallo
Du musst die entsprechende Anzahl von Sternchen zu einem String zusammenfügen. Das machst du am Besten in einer eigenen Methode.

16.10.2022 - 14:20 Uhr

Es gibt zwei wichtige Dinge, die man hier benötigt. Man muss die Doku lesen und verstehen und man muss debuggen können. Denn bei solchen Fragen bekommt man meistens nur den Link für die Doku. Und dort findet man alle Methoden und die Erklärung dazu.
Und: "Wissen heißt wissen, wo es geschrieben steht", hat Albert Einstein gesagt.

15.10.2022 - 21:15 Uhr

            int  input = 1439;
            string result = TimeSpan.FromMinutes(input).ToString(@"hh\:mm");
            double result2 = TimeSpan.Parse(result).TotalMinutes;
            Console.WriteLine($"Input: {input}  Zwischenergebnis: {result}  Endergebnis: {result2}");


Macht 2 Zeilen Code. Funktioniert so aber nur bis 1439. Erklärung in der Doku.

14.10.2022 - 20:34 Uhr

Ich bin immer wieder erstaunt, wenn Einsteiger/Umsteiger mit TimeSpan, DateTimeOffset usw. hadern und lieber ihre eigenen Lösungen suchen. Mit diesen Klassen kann man fast alles machen, was man in diesem Zusammenhang benötigt. Parsen von Strings, Umwandlung in Strings, rechnen und das abhängig von der Ländereinstellung. Das können die eigenen Lösungen meistens nicht. Man muss auch beachten, das TimeSpan in vielen anderen Klassen verwendet wird, dann hat man mit der eigenen Lösung ein Problem.

11.10.2022 - 23:55 Uhr

Lass dir doch die Klasse automatisch erstellen: JSON and XML to C# classes in Visual Studio

27.09.2022 - 08:14 Uhr

Ja, da stimme ich dir zu. Und da liegt auch das Problem. Wenn der Fall dann mal eintritt, dann stellt man fest, was man so alles vergessen hat. Zuhause mag das ja noch gehen, aber in einer Firma wird es schwierig. Da ist vielleicht der Domänencontroller weg, die Daten des Warenwirtschaftssystems wurden zwar gesichert, aber die Erweiterungen wurden vergessen. Da gibt es das CRM-Sytem noch. Ups, daran hab ich nicht gedacht....
Man merkt ja schon bei Serverproblemen in der Firma, wer da plötzlich nicht mehr arbeiten kann.

23.09.2022 - 15:06 Uhr

Leider gibt es oft die Einstellung "das wird schon so funktionieren", "da hatten wir noch nie Probleme", "das ist ja schon viel zu teuer". Nicht nur im IT-Bereich. Und wen man als Mitarbeiter dann drauf hinweist, dann mault man immer nur. Aber im IT-Bereich wird es sehr schnell existenzbedrohend.

22.09.2022 - 22:31 Uhr

Da muss ja wohl einiges schief gelaufen sein.
Die Gründe für die Insolvenz

Der Vorfall ereignete sich um den Monatswechsel nach einem Stromausfall in der Region, der zu einer erheblichen Beschädigung der IT-Server und einem irreparablen Datenverlust geführt hat, nachdem auch die Notstromversorgung aufgrund technischer Defekte zeitgleich ausgefallen ist.

Kann ich irgendwie nicht nachvollziehen. Gibt es keine Datensicherung? Keine Datenrettung möglich? Mit einem Stromausfall muss man ja immer rechnen.

17.09.2022 - 10:54 Uhr

Ja natürlich. Es gibt da viele Wege. Hier mal was als Einstieg: Serialisierung in .NET

03.09.2022 - 12:53 Uhr

Für Arduino habe ich das hier gefunden: ArduinoJson library

30.08.2022 - 14:53 Uhr

Da gibt es den WMI Code Creator v1.0.
Da findet man diese Infos.

Hier der generierte Code:


using System;
using System.Management;
using System.Windows.Forms;

namespace WMISample
{
    public class MyWMIQuery
    {
        public static void Main()
        {
            try
            {
                ManagementObjectSearcher searcher = 
                    new ManagementObjectSearcher("root\\CIMV2", 
                    "SELECT * FROM Win32_NetworkAdapterConfiguration"); 

                foreach (ManagementObject queryObj in searcher.Get())
                {
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("Win32_NetworkAdapterConfiguration instance");
                    Console.WriteLine("-----------------------------------");
                    Console.WriteLine("DHCPEnabled: {0}", queryObj["DHCPEnabled"]);
                }
            }
            catch (ManagementException e)
            {
                MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
            }
        }
    }
}