Ich möchte dem Benutzer erlauben, eine Dauer einzugeben. Ich möchte, wenn möglich, die Eingabe an eine ganzzahlige Eigenschaft binden, die den Wert in Sekunden darstellt. Die Eingabe sollte wie folgt formatiert sein: "HH: mm: ss".WPF: Eingabedauer (hh: mm: ss)
Ich habe diesen Code in meinem Viewmodel:
private int _duration;
public int duration
{
get { return _duration; }
set
{
if (_duration == value)
return;
_duration = value;
RaisePropertyChanged(() => duration);
}
}
Und mein XAML:
<Textbox Text="{Binding duration, StringFormat=HH:mm:ss}"/>
Aber das funktioniert nicht. Ich kann jede Art von String eingeben (nicht nur numerisch) und das Format wird nicht respektiert.
PS: Mein Projekt ist ein Xamarin Forms-Projekt, aber ich denke, es ist das Gleiche.
Warum eine ganze Zahl statt 'DateTime'? Haben Sie darüber hinaus einen Konverter in Erwägung gezogen? – Blacktempel
Mein Datenbankformat für diesen Eintrag i 'integer'. Aber ich kann 'DateTime' verwenden und vor dem Speichern in' int' konvertieren, das ist kein Problem. Der Wechsel zu 'DateTime' ändert übrigens nichts an der Eingabeformatierung. Ich werde versuchen, einen Konverter zu schreiben, und ich werde zurückkommen, um Feedback zu geben. – Ben
'DateTime' + Konverter. Oder konvertieren Sie den Integer-Wert sogar in das entsprechende Format für die Benutzeroberfläche. Beides ist mit einem geeigneten Konverter möglich. – Blacktempel