Zum Inhalt springen

Text bzw. DateTime Angabe durch klicken in Textbox


MMazi

Empfohlene Beiträge

Hallo Alle zusammen,

wie kann ich die Datetime bzw. Text durch klicken auf Button in Textfeld angeben, ich habe soweit geschafft diese in datagridview anzugeben nun musste auch die gleiche Datetime in Textbox gleichzeitig erscheinen.

musste ich auch dazu sagen, will erstmal alles ohne MVVM realisieren.

Danke für die Antworten

XAML Code:

<Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <StackPanel
            Grid.Row="0"
            Grid.Column="0"
            Margin="5,5,5,5">
            <TextBlock x:Name="lblStart" Text="Start" />
            <TextBox x:Name="txtStart" />
            <TextBlock x:Name="lblEnde" Text="Ende" />
            <TextBox x:Name="txtEnde" />
            <Button
                x:Name="btnStart"
                Grid.Column="0"
                Width="100"
                Height="20"
                Margin="5,5,5,5"
                Click="btnStart_Click"
                Content="Start" />
        </StackPanel>
        <ListView
            x:Name="lstNames"
            Grid.Row="0"
            Grid.Column="1"
            Margin="5,5,5,5">
            <ListView.View>
                <GridView x:Name="grdNames">
                    <GridViewColumn
                        Width="100"
                        DisplayMemberBinding="{Binding Start}"
                        Header="Start" />
                    <GridViewColumn
                        Width="100"
                        DisplayMemberBinding="{Binding Ende}"
                        Header="Ende" />
                    <GridViewColumn
                        Width="50"
                        DisplayMemberBinding="{Binding Dauer}"
                        Header="Dauer" />
                    <GridViewColumn
                        Width="150"
                        DisplayMemberBinding="{Binding Bemerkung}"
                        Header="Bemerkung" />
                </GridView>
            </ListView.View>
        </ListView>
    </Grid>

C# Code :

 

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace TimeRecorderPro
{
    /// <summary>
    /// Interaktionslogik für MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        //Globale Variabeln

        public DateTime startTime;
        public DateTime endTime;


        private ObservableCollection<Timer> Timer;
        public MainWindow()
        {
            InitializeComponent();
            Timer = new ObservableCollection<Timer>()
            { };
            lstNames.ItemsSource = Timer;
        }
        

        private void btnStart_Click(object sender, RoutedEventArgs e)


        {
            this.startTime = DateTime.Now;
            txtStart.Text = startTime.ToString("HH:mm:ss");

            Button btnstart = new Button();
            btnstart.Content ="Start";
            this.btnStart.Inlines.Add(btnstart);

            Timer.Add(new Timer() { Start = txtStart.Text, Ende = txtEnde.Text });
            txtStart.Text = string.Empty;
            txtEnde.Text = string.Empty;
        }
    }

    public class Timer
    {
        public string Start { get; set; }
        public string Ende { get; set; }
        public int Dauer { get; set; }
        public int Bemerkung { get; set; }
    }
}

 

Bearbeitet von MMazi
Link zu diesem Kommentar
Auf anderen Seiten teilen

das soll eine vorstuffe sein bevor ich mich mit WPF Richtig tief beschäftige, das Tool sollte erstmal  ohne Verwendung von MvvM geschrieben werden dann danach muss ich das Tool mit MvvM realisieren.

ist es überhaupt möglich , dass ich die Datetime auch in Textbox durch klicken auf Button angebe?

Link zu diesem Kommentar
Auf anderen Seiten teilen

            this.startTime = DateTime.Now;
            txtStart.Text = startTime.ToString("HH:mm:ss");

            Button btnstart = new Button();
            btnstart.Content ="Start";
            this.btnStart.Inlines.Add(btnstart);

            Timer.Add(new Timer() { Start = txtStart.Text, Ende = txtEnde.Text });
            txtStart.Text = string.Empty;
            txtEnde.Text = string.Empty;

Was soll das hier sein? Warum erstellst du einfach einen neuen Button? Der Button macht hier überhaupt nicht...hat keine Funktion, nada.

Außerdem setzt du den Text von txtStart erst auf Datetime.Now und dann auf string.Empty...ist doch klar, dass die TextBox leer ist.

txtEnde setzt du auch nirgendwo.

Ich weiß nicht, warum du diesen Weg gehst. Du lernst es von grundauf falsch. 

Warum hast du eine ObservableCollection von Timern, die aber nirgends verwendet wird. Und warum überhaupt eine ObservableCollection, wenn du nicht mit der UI interagierst, eine List würde es hier auch tun.

Wenn du einen Prototyp bauen willst, dann mach es mit WinForms...da ist es ok SO zu arbeiten. Du nutzt hier aber eine andere Technologie wie WinForms und das ist einfach falsch.

 

Edit: Bist du Azubi oder Gelernter der ein neues Feld lernen will? Kann ich aus den anderen Threads nicht schließen

Bearbeitet von KeeperOfCoffee
Link zu diesem Kommentar
Auf anderen Seiten teilen

ja hast du recht der neue Button Code ausschnitt musste ich auskommentieren, hatte ich ja nur ausprobiert.

" Außerdem setzt du den Text von txtStart erst auf Datetime.Now und dann auf string.Empty...ist doch klar, dass die TextBox leer ist. "

das hat funktioniert..

 

Danke dir

 

Bearbeitet von MMazi
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...