Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

  • Autor

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?

            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

  • Autor

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.