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 CWolle
Thema: Muss ich Page-Instanzen beim Schliessen zerstören? Und wenn ja: Wie?
Am im Forum: GUI: WPF und XAML

Entschuldigung, dass ich es falsch formuliert hatte, aber ich hatte noch nie behauptet, dass ich MVVM verwende.
Ich arbeite mit MVC-Pattern wegen Verwendung von RoutedUICommands in separaten Namespaces (die sind in MVVM gar nicht möglich) statt mit generischen Action<> und Func<>-Delegates.
MVVM ist doch erst bei größeren Anwendungen sinnvoll aufgrund des Overheads

Thema: Muss ich Page-Instanzen beim Schliessen zerstören? Und wenn ja: Wie?
Am im Forum: GUI: WPF und XAML

Ich habe ein MainWindow mit diversen Page-Instanzen erzeugt, die durch Clicks angezeigt werden.

Bei Clicks funktioniert im Programm auch alles, aber der Debugger zeigt mir zig BindingExpression-Fehler an. Muss ich die aktuell angezeigte Page bei einem Click immer zerstören? Und wie geht das?


public partial class Page_1 : Page
{
      public static MainWindow haupt;            
      public Page_1(ref MainWindow mw)
      {
            InitializeComponent(); 
            mw.DataContext = ...

Thema: Wie kann ich einem ThumbButtonInfo ein Command zuweisen?
Am im Forum: GUI: WPF und XAML

in meinem Programm sind mehrere Collections enthalten und wenn eine andere ausgewählt wird, muss ich ja meine TaskbarItemInfo mit den (Vor/Zurück)-Buttons anpassen. Ich bekomme aber immer nur einen Fehler:

Fehler
Der String kann nicht in "System.Windows.Input.ICommand" konvertiert werden.
Auch die Lösungsvorschläge von VS zeigen alle denselben Fehler an. Wie kann ich einen bestehenden Command korrekt hinzufügen?

<Window.TaskbarItemInfo>
<TaskbarItemInfo Description="{Binding Description}" >
<TaskbarItemInfo.ThumbButtonInfos>
<ThumbButtonInfo x:Name="tbi_re" ... />


ThumbButtonInfo tbi = (ThumbButtonInfo)this.TryFindResource("tbi_re");
ICommand x = (ICommand) "{x:Static local:Commands.GotoPrevious}");
tbi.Command = x;

Thema: Wieso verwendet C# ein separates Typsystem mit Wertetypen?
Am im Forum: Grundlagen von C#

Wieso verwendet C# eigentlich ein separates Typsystem mit Wertetypen? Denn eigentlich lassen sich diese ja auch alle auf Klassen zurückführen und wären somit Referenztypen.
Sind Wertetypen nur eine lose Festlegung oder gibt es einen bestimmten Grund für die Deklaration?

Thema: Wie erreiche ich, dass das Rectangle auch an den gerundeten Ecken geclippt wird?
Am im Forum: GUI: WPF und XAML

Versuchs mal mit folgender Reihenfolge. Wenn die Farbe keine Rolle spielt, müsste es klappen

<Border  Background="Yellow" Margin="50" CornerRadius="90" ClipToBounds="True" />
<Rectangle Opacity="0.8" Width="400" Height="300" Fill="White" Margin="-200 0 200 0"/>

Thema: Methodenaufruf mit ObjectDataProvider (Funktioniert in der Vorschau, Fehler beim Compilieren)
Am im Forum: GUI: WPF und XAML

Ich möchte den Content eines Labels mit einer Methode befüllen und habe mir hierzu einen ObjectDataProvider erstellt:

<ObjectDataProvider x:Key="text" ObjectType="{x:Type local:MainWindow}" MethodName="Ausgabe"/>
die Methode Ausgabe() liefert auch nur einen String, in der Vorschau wird sogar alles korrekt angezeigt, aber beim Kompilieren kommt immer nur 10x die Fehler-Meldung:
Fehler
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(4206,5): warning MSB3026: "obj\Debug\ODP.exe" konnte nicht in "bin\Debug\ODP.exe" kopiert werden. Wiederholung 1 wird in 1000 ms gestartet. Der Prozess kann nicht auf die Datei "bin\Debug\ODP.exe" zugreifen, da sie von einem anderen Prozess verwendet wird. Die Datei wird durch "ODP (12764)" gesperrt.

was mache ich denn falsch?

Thema: Binding geht verloren, statt sich zu aktualisieren
Am im Forum: GUI: WPF und XAML

Ich habe ein MainWindow mit DockPanel für einen Frame und einer DependencyProperty, auf die in der StatusBar verwiesen wird.


<Label Content="{Binding X, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
wenn ich nun im Frame die DependencyProperty ändere, geht das obige Binding einfach verloren, statt sich anzupassen.


public Frame(ref MainWindow haupt)
{
     InitializeComponent();            
     haupt.X = "neu";
 }
wird UpdateSourceTrigger im MainWindow nicht ausgeführt, weil ich mich in einem anderen Frame befinde?

Thema: Wie kann ich eine Variable von Form2 nach Form1 schicken?
Am im Forum: Grundlagen von C#

ich gehe davon aus, dass du mit WPF-Elementen arbeitest.
Dann mach doch direkt einen Binding-Befehl mit 2Way-Modus! Einfacher gehts doch nicht

Thema: Text aus einem anderen String kopieren
Am im Forum: Grundlagen von C#

wenn du Regex nicht kennst oder willst:

durchsuch halt deinen ersten String mit IndexOf() nach einem Zeichen, so kriegst du die Index-Nummer. Dann kannst du dir einen Teilstring erstellen

Thema: TextBox für Geldbeträge mit Validation Rule akzeptiert Zeichen "," und "." nicht mehr
Am im Forum: GUI: WPF und XAML

ich habe eine TextBox zum Anzeigen und Ändern von Geldbeträgen. Eine falsche Eingabe soll einen roten Rahmen erzeugen. Ich versuchte dies mit einer Validation Rule, aber plötzlich kann ich die Zeichen ',' und '.' nicht mehr in die TextBox eingeben (alle anderen gehen). Was mache ich falsch?

<TextBox Name="basicPreis">
            <Binding Path="Betrag" UpdateSourceTrigger="PropertyChanged">
                <Binding.ValidationRules>
                    <local:BetragValidationRule />
                </Binding.ValidationRules>
            </Binding>
        </TextBox>

Die ValidationRule lautet:

public override ValidationResult Validate(object value, CultureInfo cultureInfo)
        {
            string wert = value as string;
            try
            {
                double val = Convert.ToDouble(wert);
                return ValidationResult.ValidResult;
            }
            catch
            {
                return new ValidationResult(false, "Keine Zahl");
            }            
        }

Thema: Wie aus einem Rechteck mit aneinandergehängten Dreiecken ein Kreisdiagramm erstellen?
Am im Forum: GUI: WPF und XAML

Ich habe ein Rechteck aus aneinandergehängten Dreiecken (im Anhang ist ein Bild), das ich in ein Kreisdiagramm umwandeln möchte. CombinedGeometry akzeptiert die Polygon-Objekte nicht. Gibt es noch eine weitere Möglichkeit zum beschneiden?

<Canvas Name="can"  >
            <Polygon Name="pol1" Fill="Aqua" />                     
            <Polygon Name="pol2" Fill="Green" />
            <Polygon Name="pol3" Fill="Yellow" />
            <Polygon Name="pol4" Fill="Gray" />
            <Polygon Name="pol5" Fill="Blue" />
            <Polygon Name="pol6" Fill="Beige" />
            <Polygon Name="pol7" Fill="Pink" />
</Canvas>

Thema: Bibliothek, mehrere getrennte Werte zurückgeben
Am im Forum: Grundlagen von C#

Du kannst den String splitten mit der Methode Split(). Gib als Zeichen dann ',' an. Du bekommst so ein Array mit deinen Zahlen

Thema: Reaktionszeit vom Erscheinen eines Labels bis zum Klicken davon messen
Am im Forum: Grundlagen von C#

Stopwatch uhr = new Stopwatch(); // am Anfang  
uhr.Start(); // beim Erscheinen 

mit einem Event reagierst du auf ein Klicken und gibst in der Event-Behandlung eben uhr.Stop(); an

Thema: String auf Console gleichmässig tabellarisch formattieren
Am im Forum: Grundlagen von C#

Du musst in der Ausgabe der Farbe eine Länge angeben, bspw. 10:
Console.WriteLine("... {0,10}...", variable)

Thema: Erneuerungen in C#7
Am im Forum: Grundlagen von C#

Wo kann man die Dokumentation von C# finden, wo die kompletten Änderungen beschrieben werden?
Es wurden ja auch grundlegende Methoden entfernt (bspw. Thread.Abort), was heftige Fehler verursacht.

Was bringen mir sonst Neuerungen, wenn ich sie gar nicht kenne?

Thema: Nur zwei Eigenschaften eines Structs in Methode bearbeiten
Am im Forum: Grundlagen von C#

mach dir gleich eine Klasse mit passendem Konstruktor. Struct ist auch nur die "Einschränkung" einer Klasse

Thema: CheckBox an Bool-Variable binden
Am im Forum: GUI: WPF und XAML

ich habe dem DockPanel-Bereich den Frame (mit der CheckBox) nochmals erneut zugewiesen, damit sich die Ansicht aktualisiert. So wird ja der Frame erneut geladen - was InitializeComponent() ausführt.


 Page p = new FrameX();
 haupt = p;
 // Checkbox in p aktualisiert, und jetzt die Page erneut zugewiesen
 haupt = p; 
 
Ich dachte, dass Änderungen an der Ausgabe automatisch angezeigt werden, aber es klappte doch nicht. Erst als ich dann Frame p erneut zuwies, wurde die Ansicht aktualisiert

Thema: CheckBox an Bool-Variable binden
Am im Forum: GUI: WPF und XAML

Danke für den Hinweis, ich habs weiter probiert und die Lösung gefunden:

die Bindung war schon zu Beginn korrekt erfolgt (Abfrage mit Debug), aber ich musste nochmal 'InitializeComponent()' aufrufen, damit die Ansicht der anfangs leeren CheckBox aktualisiert wurde.

Thema: CheckBox an Bool-Variable binden
Am im Forum: GUI: WPF und XAML

ich möchte einige WPF-Elemente an Werte aus einem Array binden. Mit TextBox und DatePicker klappt auch alles, aber ich komme einfach nicht drauf, wie ich eine CheckBox an einen Bool-Wert binden kann.
Ich habs schon mit DataContext, Checked und IsChecked probiert! Die CheckBox bleibt immer leer - wie kann man eine Bindung an eine Boolean-Variable realisieren?

Thema: Datenbindung an DatePicker
Am im Forum: GUI: WPF und XAML

Ich habe eine ListView mit Objekten, die u.a. eine DateTime-Eigenschaft enthalten. Zum Editieren soll das selektierte Objekt in diversen Boxen angezeigt werden (DatePicker, TextBox,...). Die Bindung funktioniert auch überall, bis auf DatePicker. Ich hab es schon mit DataContext, DisplayDate und SelectedDate versucht. Die Objekte sind recht einfach aufgebaut:


public class Termin
{        
        private DateTime? _datum;
        private String _ort;
        private Int32? _dauer;
        private Boolean _bemerkt;
        ...
}

Im ListView funktioniert die Datenbindung problemlos
<ListView ItemsSource="{Binding TerminView, Mode=OneWay}" >
<ListView.View><GridView>
...
<GridViewColumn DisplayMemberBinding="{Binding Datum.Value}" Header="Datum" />
</GridView></ListView.View></ListView>

und auch in den einzelnen Boxen. Aber in DatePicker zeigt es immer nur "Datum auswählen" an. Was mache ich falsch?

<DatePicker DataContext="{Binding Datum}" DisplayDate="{Binding Value}" Name="Datum" />
<TextBox DataContext="{Binding Ort}" Text="{Binding Value}" Name="Ort"  />

Thema: Nur decimal in Textbox erlauben
Am im Forum: GUI: WPF und XAML

führe doch einfach eine Konvertierung in eine Zahl durch, bspw. mit Convert.ToDouble()
dann kannst du mit if checken, ob dabei ein Fehler auftritt oder nicht...

Thema: Prüfen ob Klasse/Unterklasse und Methode existiert (via String).
Am im Forum: Grundlagen von C#

Ich versteh den Sinn nicht:
?(
Du musst doch wissen, was du programmieren willst! Und VisualStudio zeigt dir in einem Klappfenster doch immer alle vorhandenen Methoden an

Thema: MVVM: Nach Namespace-Änderung in VS2017 wird bspw "InitializeComponents" nicht mehr gefunden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Wenn ich bei MVVM-Projekten den Namespace ändere, kommen oft Fehler wie 'InitializeComponents wird nicht mehr gefunden' trotz Neukompilierung!
Neuladen der Projektmappe hilft nichts, wenn ich jedoch Visual Studio beende und neu starte, ist der Fehler weg.
Ich arbeite mit VS2017 Community Version 15.1

Thema: Wie kann ich mehrere Schleifen schachteln (Würfelspiel)?
Am im Forum: Grundlagen von C#

Wäre es nicht sinnvoller, erst mal die Grundlagen von C# komplett zu lernen?
Es gibt tolle Bücher! Ich will keine Werbung machen, aber schau dir mal von Andreas Kühnel 'C#6 mit Visual Studio 2015' an - das wirst du nie bereuen!

Thema: Kann man ein Array zu erstellen, in dem der erste Wert String und der zweite Wert Integer ist?
Am im Forum: Grundlagen von C#

Mach dir halt einen Anonymen Typ oder eine entsprechende Klasse

Thema: MVVM (Visual Basic) - Combobox aktualisiert sich nicht?
Am im Forum: GUI: WPF und XAML

ich bin doch in einem C#-Forum, oder?
Das Code-Fenster ist auch mit 'C#-Code' beschriftet! Versteh ich irgendwas falsch?

Thema: Alle strings in einem List<string> auf Teilweise gleichen Inhalt überprüfen
Am im Forum: Rund um die Programmierung

- durchsuche jeden String nach dem Index des zweiten "/"
- nun kannst du einen String generieren von (0-Index)
- speichere die Strings in einer Collection, dann hast du das Ergebnis

Thema: MVVM (Visual Basic) - Combobox aktualisiert sich nicht?
Am im Forum: GUI: WPF und XAML

= und == sind nicht dasselbe! In einer if-Anweisung musst du == verwenden zum vergleichen.

Thema: ReportViewer - Leere Felder nicht anzeigen
Am im Forum: Rund um die Programmierung

bei einem Value-Vergleich musst du entweder .Length() mit 0 vergleichen oder du vergleichst mit NULL. Sonst trifft deine Bedingung nie zu

Thema: Update DirectoryEntry: Wert ändert sich nicht
Am im Forum: Rund um die Programmierung

Wenn du einen String an die Methode übergibst, wird nur eine Kopie verwendet. Deswegen solltest du den Wert mit 'ref' übergeben, damit du das Original bearbeitest.