Hallo Ihrs,
als, bisher, stiller Leser konnte ich eine ganze Menge meiner Probleme mit WPF durch dieses Forum lösen.
Nun habe ich aber eine Blockade und bin nicht sicher ob und wie ich mein Problem lösen kann. Ich habe natürlich umfangreich gesucht, habe aber leider nichts finden können. Das Problem ist aber auch recht speziell (nur sonderbar, nicht kompliziert) also sind mir auch vlt. nicht die richtigen Schlagworte eingefallen.
Daher trete ich nun aus dem Schatten und frage euch hiermit um Hilfe
Ich habe ein WPF Projekt bestehend aus einem Fenster mit, der Einfachheit halber, 3 Textboxen:
Der Converter:
Der Datacontext für das Fenster ist eine Datatable
In der 3. Textbox soll das Ergebnis der Berechnung durch den Converter stehen (das funktioniert auch) aber, es soll durch den Anwender überschrieben werden können.
Es ist dabei aber korrekt, wenn dann der manuell eingetragene Wert wiederum überschrieben wird, wenn Eingaben in Textbox "txt_Tranche_Base" und/oder "txt_Tranche_Base_Tilgungssatz" stattfinden
Jetzt ist es aber so, dass ich das Ergebnis in der Textbox nicht überschreiben kann.
Ich verstehe auch, dass ich das nicht überschreiben kann weil ich bei ...
... <Binding Path="cRestschuld"/> mit drin habe, was den Text meiner Textbox immer aktualisiert wenn sich eine Property ändert und das tut sie bei einer manuelle Eingabe und überschreibt sofort meine Eingabe mit dem Ergebnis des Converters.
Welche Möglichkeit habe ich nun um das Problem zu lösen - Also einen berechneten Wert in der Textbox ("txt_Restschuld_Summe") stehen zu haben den ich manuell überschreiben und in das Feld "cRestschuld" abspeichern kann - gerne ohne weitere Controls einfügen zu müssen.
Ich hoffe ich konnte die Problemstellung halbwegs gut rüber bringen. Sollten Informationen Fehlen, reiche ich sie auch gerne nach.
Vielen Dank im Voraus
Shinii
als, bisher, stiller Leser konnte ich eine ganze Menge meiner Probleme mit WPF durch dieses Forum lösen.
Nun habe ich aber eine Blockade und bin nicht sicher ob und wie ich mein Problem lösen kann. Ich habe natürlich umfangreich gesucht, habe aber leider nichts finden können. Das Problem ist aber auch recht speziell (nur sonderbar, nicht kompliziert) also sind mir auch vlt. nicht die richtigen Schlagworte eingefallen.
Daher trete ich nun aus dem Schatten und frage euch hiermit um Hilfe
Ich habe ein WPF Projekt bestehend aus einem Fenster mit, der Einfachheit halber, 3 Textboxen:
VB.NET-Quellcode
- <!--Eingabe Wert 1-->
- <TextBox Name="txt_Tranche_Base">
- <Binding Path="cTranche_1" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" StringFormat="C0"/>
- </TextBox>
- <!--Eingabe Wert 2-->
- <TextBox Name="txt_Tranche_Base_Tilgungssatz">
- <Binding Path="pTranche_1_Base_Zinssatz" Mode="TwoWay" UpdateSourceTrigger="LostFocus" StringFormat="{}{0:F2} %"/>
- </TextBox>
- <!--Das Problem, Ausgabe UND Eingabefeld-->
- <TextBox Name="txt_Restschuld_Summe">
- <MultiBinding Converter="{StaticResource Restschuld_Convert}" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
- <Binding Path="cRestschuld"/>
- <Binding Path="cTranche_1"/>
- <Binding Path="pTranche_1_Base_Zinssatz"/>
- </MultiBinding>
- </TextBox>
Der Converter:
VB.NET-Quellcode
- Public Class cRestschuld
- Implements IMultiValueConverter
- Public Function Restschuld(ByVal values() As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object _
- mplements System.Windows.Data.IMultiValueConverter.Convert
- Dim Kreditsumme1 As Double
- Dim Prozentwert1 As Double
- Double.TryParse(values(1), Kreditsumme1)
- Double.TryParse(values(2), Prozentwert1)
- Return CStr(Kreditsumme1 * Prozentwert1 / 100)
- End Function
- Public Function ConvertBack(ByVal value As Object, ByVal targetTypes() As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object() _
- mplements System.Windows.Data.IMultiValueConverter.ConvertBack
- Dim Ergebnis As Double = Convert.ToDouble(value)
- Return New Object() {Ergebnis}
- End Function
- End Class
Der Datacontext für das Fenster ist eine Datatable
In der 3. Textbox soll das Ergebnis der Berechnung durch den Converter stehen (das funktioniert auch) aber, es soll durch den Anwender überschrieben werden können.
Es ist dabei aber korrekt, wenn dann der manuell eingetragene Wert wiederum überschrieben wird, wenn Eingaben in Textbox "txt_Tranche_Base" und/oder "txt_Tranche_Base_Tilgungssatz" stattfinden
Jetzt ist es aber so, dass ich das Ergebnis in der Textbox nicht überschreiben kann.
Ich verstehe auch, dass ich das nicht überschreiben kann weil ich bei ...
... <Binding Path="cRestschuld"/> mit drin habe, was den Text meiner Textbox immer aktualisiert wenn sich eine Property ändert und das tut sie bei einer manuelle Eingabe und überschreibt sofort meine Eingabe mit dem Ergebnis des Converters.
Welche Möglichkeit habe ich nun um das Problem zu lösen - Also einen berechneten Wert in der Textbox ("txt_Restschuld_Summe") stehen zu haben den ich manuell überschreiben und in das Feld "cRestschuld" abspeichern kann - gerne ohne weitere Controls einfügen zu müssen.
Ich hoffe ich konnte die Problemstellung halbwegs gut rüber bringen. Sollten Informationen Fehlen, reiche ich sie auch gerne nach.
Vielen Dank im Voraus
Shinii