MMazi Geschrieben 17. November 2020 Geschrieben 17. November 2020 (bearbeitet) 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 17. November 2020 von MMazi Zitieren
KeeperOfCoffee Geschrieben 17. November 2020 Geschrieben 17. November 2020 Darf man fragen wozu das Ganze ist? Willst du für einen Job WPF lernen? Oder willst du gar ein kleines Portifolio aufbauen? Weil dann solltest du evlt. nicht damit anfangen es falsch zu lernen... Zitieren
MMazi Geschrieben 17. November 2020 Autor Geschrieben 17. November 2020 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? Zitieren
KeeperOfCoffee Geschrieben 17. November 2020 Geschrieben 17. November 2020 (bearbeitet) 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 17. November 2020 von KeeperOfCoffee Zitieren
MMazi Geschrieben 17. November 2020 Autor Geschrieben 17. November 2020 (bearbeitet) 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 17. November 2020 von MMazi Zitieren
Empfohlene Beiträge
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.