WPF Calendar Datum formatieren

  • WPF

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    WPF Calendar Datum formatieren

    Ein Calendar übergibt das Datum an eine TextBox:

    <Calendar Name="Calendar1" SelectedDatesChanged="Calendar_SelectedDatesChanged"/>

    Me.TextBox1.Text = Calendar1.SelectedDate

    Das ist soweit in Ordnung. Das Kalender wird in folgendem Format übergeben dd.mm.jjjj
    Ich benötige aber das Format jjjj.mm.dd

    Wie ändere ich das Datumsformat? Auch bei google finde ich nichts (oder ich sehe es nicht.)

    Achtung! Ich nutze nicht DateTimePicker.
    Ich denke, dass kannst du gleich über das Binding abwickeln - in etwa so (ist ungetestet):

    XML-Quellcode

    1. <Calendar x:Name="MyCalendar" SelectedDate="{x:Static sys:DateTime.Today}"/>
    2. <TextBox Text="{Binding ElementName=MyCalendar, Path=SelectedDate, StringFormat='{}{0:yyyy.MM.dd}'}"/>
    Es funktioniert... Allerdings funktioniert jetzt die Buindung zur Datenquelle nicht mehr. Folgnde Art habe ich genutzt:
    TextBox:

    XML-Quellcode

    1. Text="{Binding aufgaben_datum, ElementName=Calendar1, Path=SelectedDate, StringFormat={}{0:yyy.MM.dd}}"


    "aufgaben_datum" ist die Datenquelle aus einer Abfrage. Jetzt werden beim Laden die Daten nicht mehr aufgerufen. Gibt es eine Alternative?
    danke für Deine Frage.
    gegeben sind eine MySQL Datenbank mit Tabelle"aufgaben" und Spalte "aufgaben_datum" was ein Datum speichert.
    Durch eine Abfrage "select..." werden die Daten aus der Tabelle an ein Grid "daten1" im Fenster "WinVertra_Aufgaben" übergeben. In dem Grid befindet sich eine TextBox was die gespeicherten Datumswerte zeigt.:

    VB.NET-Quellcode

    1. Using conn As New MySqlConnection(My.Settings.XXX)
    2. Using connection As New MySqlConnection(conn.ConnectionString)
    3. conn.Open()
    4. Using MyAdapter As New MySqlDataAdapter("SELECT vertrag_aufgaben.* FROM vertrag_aufgaben ...)
    5. Using myTable As New DataTable()
    6. MyAdapter.Fill(myTable)
    7. WinVertrag_Aufgaben.daten1.DataContext = myTable.DefaultView
    8. End Using
    9. End Using
    10. End Using
    11. End Using


    XML-Quellcode

    1. <Grid Name="daten1">
    2. <Popup Name="PopUp_Kalender" PlacementTarget="{Binding ElementName=btn_aufgaben_datum}" Placement="MousePoint" StaysOpen="False" AllowsTransparency="True" PopupAnimation="Scroll">
    3. <Calendar Name="Calendar1">
    4. </Calendar>
    5. </Popup>
    6. <TextBox Name="aufgaben_datum" Text="{Binding aufgaben_datum, ElementName=Calendar1, Path=SelectedDate, StringFormat={}{0:yyy.MM.dd}}" ...>


    Wie gesagt die Übergabe des Datums aus der ABfrage an das Binding funktioniert nicht. Was kann ich tun?
    Was da komisch ist, es funktioniert auch mit einer 3-stelligen Jahresangabe :?: ...
    @Thomas2705
    Ich denke, wenn man ein datengebundenes Textbox-Control hat, sollte man eventuell die Calendarauswahl im ausgewählten Datensatz zuweisen.
    (ich habe das mit Multibindung versucht, kam aber nicht zum gewünschten Ergebnis)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VB1963“ ()

    Danke für EUre Antworten. Ich habe es jetzt so gelöst; vielleicht nicht so schön:

    XML-Quellcode

    1. <TextBox Name="TextBox1" />
    2. <TextBox Name="TextBox2" Text="{Binding ElementName=Calendar1, Path=SelectedDate, StringFormat={}{0:yyy.MM.dd}}" Visibility="Hidden"/>
    3. <Calendar Name="Calendar1"/>


    VB.NET-Quellcode

    1. Me.TextBox1.Text = Me.TextBox2.Text


    Ich verstehe nicht was DU meinst: "Ich denke, wenn man ein datengebundenes Textbox-Control hat, sollte man eventuell die Calendarauswahl im ausgewählten Datensatz zuweisen. "