Autor Beitrag
Kirk1701A
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 112
Erhaltene Danke: 3

Linux, Ubuntu, Mac, IOS, Android (4.2.x - 9.x.x), Win Mob., Micro. DOS, Win 95, Win 98, Win 2000, Win ME, Win XP, Win Vista, Win 7, Win8.1, Win 10
C# (VS 2015 Professional, VS 2017 Community/Enterprise, VS 2019 Professional/Enterprise)
BeitragVerfasst: Mo 06.11.17 09:47 
Hi Leute,

ich bin an einem sog. Noten Wizard und muss mit ComboBoxen Fächer, Noten, Lehrer auswählen und diese in ein DataGrid einsetzen. Ausserdem muss ich den Inhalt in eine Textdatei speichern, was ich auch nicht hinbekomme.

Hier mein XAML:
ausblenden volle Höhe XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
<Window x:Class="Noten_Organizer_Ver._1._1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Noten_Organizer_Ver._1._1"
        mc:Ignorable="d"
        Title="Noten Wizard" Height="630" Width="940" ResizeMode="CanMinimize" Background="#FFBDB7B7" WindowStartupLocation="CenterScreen" Icon="Wizard.ico">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="5*"/>
            <ColumnDefinition Width="35*"/>
            <ColumnDefinition Width="138*"/>
            <ColumnDefinition Width="75*"/>
            <ColumnDefinition Width="5*"/>
            <ColumnDefinition Width="75*"/>
            <ColumnDefinition Width="5*"/>
            <ColumnDefinition Width="150*"/>
            <ColumnDefinition Width="5*"/>
            <ColumnDefinition Width="150*"/>
            <ColumnDefinition Width="5*"/>
            <ColumnDefinition Width="100*"/>
            <ColumnDefinition Width="5*"/>
            <ColumnDefinition Width="100*"/>
            <ColumnDefinition Width="64*"/>
            <ColumnDefinition Width="6*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="20"/>
            <RowDefinition Height="30"/>
            <RowDefinition Height="25"/>
            <RowDefinition Height="25"/>
            <RowDefinition Height="396*"/>
            <RowDefinition Height="40"/>
            <RowDefinition Height="25"/>
            <RowDefinition Height="15"/>
            <RowDefinition Height="1"/>
        </Grid.RowDefinitions>
        <Button Name="Speichern" Content="Speichern" Grid.Column="13" Grid.Row="6" BorderBrush="Black" Click="Speichern_Click"/>
        <Button Name="Beenden" Content="Beenden" Grid.Column="11" Grid.Row="6" BorderBrush="Black" Click="MenuItem_Click_1"/>
        <Label Name="Fach_lbl" Content="Fach:" Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="1" FontWeight="Bold" FontSize="18" FontStyle="Italic"/>
        <ComboBox Name="Fach" BorderBrush="Black" Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="2" VerticalContentAlignment="Center" IsEditable="True">
            <ComboBoxItem Content="Deutsch"></ComboBoxItem>
            <ComboBoxItem Content="Englisch"></ComboBoxItem>
            <ComboBoxItem Content="IT-Systeme"></ComboBoxItem>
            <ComboBoxItem Content="Vernetzte Systeme"></ComboBoxItem>
            <ComboBoxItem Content="Anwendungsprogrammierung"></ComboBoxItem>
            <ComboBoxItem Content="Religion"></ComboBoxItem>
            <ComboBoxItem Content="Sozialkunde"></ComboBoxItem>
            <ComboBoxItem Content="BWP"></ComboBoxItem>
        </ComboBox>
        <Label Name="Note_lbl" Content="Note:" Grid.Column="5" Grid.Row="1" FontWeight="Bold" FontSize="18" FontStyle="Italic"/>
        <ComboBox Name="Note" BorderBrush="Black" Grid.Column="5" Grid.Row="2" VerticalContentAlignment="Center">
            <ComboBoxItem Content="1"></ComboBoxItem>
            <ComboBoxItem Content="2"></ComboBoxItem>
            <ComboBoxItem Content="3"></ComboBoxItem>
            <ComboBoxItem Content="4"></ComboBoxItem>
            <ComboBoxItem Content="5"></ComboBoxItem>
            <ComboBoxItem Content="6"></ComboBoxItem>
        </ComboBox>
        <Label Name="Lehrer_lbl" Content="Lehrer:" FontSize="18" FontStyle="Italic" FontWeight="Bold" Grid.Column="7" Grid.Row="1"/>
        <ComboBox Name="Lehrer" Text="Bitte wählen Sie aus..." BorderBrush="Black" Grid.Column="7" Grid.Row="2" IsEditable="True">
            <ComboBoxItem Content="Thiel"></ComboBoxItem>
            <ComboBoxItem Content="Yilmaz"></ComboBoxItem>
            <ComboBoxItem Content="Jaud"></ComboBoxItem>
            <ComboBoxItem Content="Bettio"></ComboBoxItem>
            <ComboBoxItem Content="Eichert"></ComboBoxItem>
            <ComboBoxItem Content="Gerstmayr"></ComboBoxItem>
            <ComboBoxItem Content="Zerchau"></ComboBoxItem>
        </ComboBox>
        <DatePicker Name="Datum" Grid.Column="9" Grid.Row="2" VerticalContentAlignment="Center" HorizontalContentAlignment="Stretch" Background="#FFBDB7B7" BorderBrush="Black"/>
        <Button Name="Note_eintragen" Content="Note eintragen" FontWeight="Medium" TextOptions.TextFormattingMode="Display" Grid.Column="13" Grid.ColumnSpan="2" Grid.Row="2" Click="Note_eintragen_Click"/>
        <RadioButton Name="Ex" Content="Ex" Grid.Column="11" Grid.Row="1" VerticalAlignment="Center" Margin="0,9,0,8" Height="14" Click="Ex_Click"/>
        <RadioButton Name="Schulaufgabe" Content="Schulaufgabe" Grid.Column="11" Grid.Row="2" VerticalAlignment="Top" Margin="0,6,0,0" Height="16" Click="Schulaufgabe_Click"/>
        <Label Name="schnitt" Content="Durchschnitt insgesamt:" Grid.Column="2" Grid.Row="6" VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="11" Height="26" Width="126"/>
        <Label Name="notenschnitt" Content="Test" Grid.Column="3" Grid.Row="6" VerticalAlignment="Top" FontSize="11"/>
        <DataGrid Name="Liste" Grid.Column="1" Grid.ColumnSpan="14" Grid.Row="4" CanUserResizeRows="False" CanUserResizeColumns="False" RowDetailsVisibilityMode="Visible" BorderBrush="Black" Background="#FFE8E8E8" AlternatingRowBackground="Gray" AlternationCount="2">
            <DataGrid.Columns>
                <DataGridTemplateColumn Header="Fach" Width="100"/>
                <DataGridTemplateColumn Width="50" Header="Note"/>
                <DataGridTemplateColumn Width="100" Header="Lehrer"/>
                <DataGridTemplateColumn Width="150" Header="Datum"/>
                <DataGridTemplateColumn Width="100" Header="Typ"/>
            </DataGrid.Columns>
        </DataGrid>
        <Menu Name="Menü" Background="#FF8F8F8F" Grid.Column="0" Grid.ColumnSpan="2">
            <MenuItem Header="Datei" Height="20" Width="40">
                <MenuItem Header="Fach hinzufügen" Command="Close" Click="MenuItem_Click_2"/>
                <MenuItem Header="Lehrer hinzufügen" Command="Close" Click="MenuItem_Click_3"/>
                <MenuItem Header="Info" Click="MenuItem_Click"/>
                <Separator />
                <MenuItem Header="Beenden" Click="MenuItem_Click_1"/>
            </MenuItem>
        </Menu>
    </Grid>
</Window>


Ich sende bewusst keinen C#-Code, weil noch kein relevanter Code vorhanden ist. Lediglich Beenden, Datei(oben links alles, was drin ist) funktionieren.

Vielen Dank für eure Hilfe.

Euer Kirk

_________________
"Ich war es und werde es immer bleiben... Ihr Freund!"
@Spock -> Star Trek II: Der Zorn des Khan
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20442
Erhaltene Danke: 2261

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 06.11.17 10:14 
Hallo,

wir helfen Dir gerne, Deine Sachen selber zu lösen. Aber wir werden für Dich nicht Deine Aufgaben erledigen.
Also: zeige Eigeninitiative und wir helfen weiter, wo es hakt. :zustimm:

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Kirk1701A Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 112
Erhaltene Danke: 3

Linux, Ubuntu, Mac, IOS, Android (4.2.x - 9.x.x), Win Mob., Micro. DOS, Win 95, Win 98, Win 2000, Win ME, Win XP, Win Vista, Win 7, Win8.1, Win 10
C# (VS 2015 Professional, VS 2017 Community/Enterprise, VS 2019 Professional/Enterprise)
BeitragVerfasst: Mo 06.11.17 10:22 
Hi Christian,

mir ist schon bewusst, dass ich meine Aufgaben selber lösen muss. :!: Aber manche Sachen (siehe oben) sind zu spezifisch, um diese richtig googlen zu können. Ich habe bestimmt 1 Monat nach einer gescheiten Antwort gesucht :lupe: :les: :eyecrazy: :autsch: :lupe: :les: und nichts gescheites* gefunden. Überall wird erklärt, wie man ComboBoxen in ein DataGrid setzt und nicht den Inhalt in ein DataGrid schreibt. Und wenn ich was gefunden habe, ist es entweder auf Englisch (fließtext) oder zu kryptisch geschrieben. :?: Ich werde schon wirklich die Eigeniniziative zeigen, aber dazu brauche ich ein paar Gedankenstöße. :idea: :idea: :gruebel:


Euer Kirk



* etwas, das ich anwenden, und verstehen kann

_________________
"Ich war es und werde es immer bleiben... Ihr Freund!"
@Spock -> Star Trek II: Der Zorn des Khan
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4437
Erhaltene Danke: 910


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 06.11.17 12:08 
Zitat:
Überall wird erklärt, wie man ComboBoxen in ein DataGrid setzt und nicht den Inhalt in ein DataGrid schreibt


Weil man das ja auch nicht tut :wink:

Controls wie Comboboxen oder DataGrids zeigen die Daten an die in deinem Programm definiert sind. Man ändert die Datenstrukturen hinter den Controls um die Anzeige der Controls zu beeinflussen man manipuliert nicht direkt die Controls. Idealerweise (ist schwer ohne Erfahrung ich weiß) designst du die Vorgänge in deiner Anwendung ohne eine UI vor Augen zu haben. Wenn du die Datenstrukturen hast und die Funktionen diese zu manipulieren dann mußt du diese Struktur nur noch passenden an die UI Controls binden und es wird ~automatisch~ das richtige passieren und angezeigt werden.

Wenn du also etwas in einem DatagGrid ändern willst dann ändere die Datenstruktur dahinter und aktualisiere dann einfach die Ansicht des DataGrids. Wenn du Databinding einsetzt so wie in WPF vorgesehen dann passiert dieser Schritt des aktualisierens auch automatisch.
Kirk1701A Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 112
Erhaltene Danke: 3

Linux, Ubuntu, Mac, IOS, Android (4.2.x - 9.x.x), Win Mob., Micro. DOS, Win 95, Win 98, Win 2000, Win ME, Win XP, Win Vista, Win 7, Win8.1, Win 10
C# (VS 2015 Professional, VS 2017 Community/Enterprise, VS 2019 Professional/Enterprise)
BeitragVerfasst: Mo 06.11.17 14:05 
Hi Leute,

geht es auch, wenn ich den Inhalt an eine .txt Datei sende und dann (in der selben Funktion) von der .txt Datei ins DataGrid schreiben lasse?
Ich habe eine halbwegs befriedigende Seite gefunden, bei der es erklärt wird. Ich habe es ausprobiert, aber es funktioniert leider nicht (ich verlange nicht, dass Ihr den Code prüft :wink: ).
WPF Combobox: Binding auf Selected Item???

Kann auch sein, dass wir aneinander vorbeigesprochen haben. Ich habe mehrere ComboBoxen und muss den ausgewählten Inhalt an ein DataGrid senden.

Euer Kirk

Moderiert von user profile iconTh69: URL-Titel hinzugefügt.

_________________
"Ich war es und werde es immer bleiben... Ihr Freund!"
@Spock -> Star Trek II: Der Zorn des Khan
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4437
Erhaltene Danke: 910


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 06.11.17 14:37 
Zitat:
geht es auch, wenn ich den Inhalt an eine .txt Datei sende und dann (in der selben Funktion) von der .txt Datei ins DataGrid schreiben lasse?


Gehn würde das, Sinn macht es nur nicht wenn du eigentlich keine Datei brauchst sondern nur für diesen Vorgang benutzt.
Kirk1701A Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 112
Erhaltene Danke: 3

Linux, Ubuntu, Mac, IOS, Android (4.2.x - 9.x.x), Win Mob., Micro. DOS, Win 95, Win 98, Win 2000, Win ME, Win XP, Win Vista, Win 7, Win8.1, Win 10
C# (VS 2015 Professional, VS 2017 Community/Enterprise, VS 2019 Professional/Enterprise)
BeitragVerfasst: Mo 06.11.17 15:05 
Hi Leute,

ich brauche so oder so eine .txt Datei, weil ich den DataGrid-Inhalt irgendwo speichern muss und mir eine .txt Datei vorgeschrieben wurde. Muss man das über Bindings machen, oder geht das anders?

Euer Kirk

_________________
"Ich war es und werde es immer bleiben... Ihr Freund!"
@Spock -> Star Trek II: Der Zorn des Khan
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4437
Erhaltene Danke: 910


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 06.11.17 15:13 
Dann wäre der richtigste Weg eine Datenstruktur im Speicher zu haben die deine Daten beschreibt.
Dann kannst du a.) diese Datenstruktur aus einer Datei lesen/schreiben und b.) diese Datenstruktur an ein Control binden.
Hat den wichtigen Nebeneffekt das die Probleme (anzeigen, persistieren) getrennt bleiben. Zerlege also dein Problem in kleinere Probleme die einzeln leicht zu lösen sind (Teile und herrsche)

Für diesen Beitrag haben gedankt: Kirk1701A
Kirk1701A Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 112
Erhaltene Danke: 3

Linux, Ubuntu, Mac, IOS, Android (4.2.x - 9.x.x), Win Mob., Micro. DOS, Win 95, Win 98, Win 2000, Win ME, Win XP, Win Vista, Win 7, Win8.1, Win 10
C# (VS 2015 Professional, VS 2017 Community/Enterprise, VS 2019 Professional/Enterprise)
BeitragVerfasst: Mo 06.11.17 15:16 
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
und b.) diese Datenstruktur an ein Control binden.

Meinst du die ComboBoxControl?

_________________
"Ich war es und werde es immer bleiben... Ihr Freund!"
@Spock -> Star Trek II: Der Zorn des Khan
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4437
Erhaltene Danke: 910


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 06.11.17 15:22 
Bei Control meine ich ComboBox, DataGrid usw. Wenn ich von Datenstruktur spreche meine ich irgendwelche Klassen die deine Daten halten. Nichts was irgendwo irgendwas mit der Anzeige zu tun hat.

Für diesen Beitrag haben gedankt: Kirk1701A