myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: WPF und XAML » Runtime Culture ändern, aber nur für einzelne Elemente (MVVM)
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Runtime Culture ändern, aber nur für einzelne Elemente (MVVM)

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
echdeneth echdeneth ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.06.2019
Beiträge: 44
Entwicklungsumgebung: C# / Visual Studio 2017/19
Herkunft: Sachsen


echdeneth ist offline

Runtime Culture ändern, aber nur für einzelne Elemente (MVVM)

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo, ist nicht ganz einfach mein Problem zu erläutern.

In meiner View hat es mehrere Textboxen, und u.a. eine Combo mit 3 Währungen drin.
Nun möchte ich NUR in dieser Box und NUR die Währung ändern je nach dem welche in der Combo eingestellt ist. Leider nimmt ConverterCulture nur "DE-de" an.

Hat jemand eine Idee?
20.11.2019 16:30 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.356
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Vermute, dass hier je nachdem mehrere Art und Weisen in Frage kommen:
- Custom Format in Binding
- Eigener IValueConverter mit entsprechend spezifischer Culture-Information
.. bestimmt noch mehr

Vermute aber auch, dass Du mit dem Bedarf nicht der Erste bist und sicher 10000 Varianten auf Google findest :-)
Kannst die passenden Treffer ja hier posten.
20.11.2019 21:44 Beiträge des Benutzers | zu Buddylist hinzufügen
echdeneth echdeneth ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.06.2019
Beiträge: 44
Entwicklungsumgebung: C# / Visual Studio 2017/19
Herkunft: Sachsen

Themenstarter Thema begonnen von echdeneth

echdeneth ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Abt:
Vermute, dass hier je nachdem mehrere Art und Weisen in Frage kommen:
- Custom Format in Binding

XML-Code:
             <Binding Path="NettoWert"
                         StringFormat="C"
                         ConverterCulture="PL-pl"
/>

ConverterCulture nimmt keine DynamicRes. oder sonst irgendwas an nur CultureInfos

Zitat von Abt:
- Eigener IValueConverter mit entsprechend spezifischer Culture-Information
.. bestimmt noch mehr

Nach dem IValueC. schaue ich mal

Zitat von Abt:
Vermute aber auch, dass Du mit dem Bedarf nicht der Erste bist und sicher 10000 Varianten auf Google findest :-)
Kannst die passenden Treffer ja hier posten.

zum 1. Wahrcheinlich nicht, leider nicht - was ich vorhabe ist zu spezifisch, hab ich schon - ich weiss nicht mal wie ich formulieren soll
2. Auf jeden Fall
21.11.2019 10:35 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.279
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von echdeneth:
ich weiss nicht mal wie ich formulieren soll

Das ist aber das Wichtigste. Ich kann dir jedenfalls nicht folgen. Ich weiß nur, es gibt Textfelder und ComboBoxen, und irgendwo soll eine Währung dynamisch geändert werden. Wenn du es nicht beschreiben kannst, zeig wenigstens mal einen Screenshot.
21.11.2019 13:13 Beiträge des Benutzers | zu Buddylist hinzufügen
echdeneth echdeneth ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.06.2019
Beiträge: 44
Entwicklungsumgebung: C# / Visual Studio 2017/19
Herkunft: Sachsen

Themenstarter Thema begonnen von echdeneth

echdeneth ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von MrSparkle:
...zeig wenigstens mal einen Screenshot.

Da würde man auch nur Textfelder (wo man den Betrag eingibt) und Combos (z.B. mit der Währung) sehen.

Ich habe eine Page in der u.a. ein Geldbetrag eingegeben werden kann. Diese Textbox (und die Währungs-Combo) hat ein Binding zu einee MVVM-Klasse.
ALs NuGet habe ich MaterialDesignThemes von James Willock verwendet.
Die Anzeige der Währung erfolgt w. o. beschrieben durch "StringFormat=C".
Nun möchte ich gerne, dass wenn ich in der Combo irgendeine Währung auswähle, das Voreingestellte Language="DE-de" ersetzt wird oder das ich in irgendwiner anderen Form das "€" in jenes Währungssymbol einstelle die dazu passt.
Es soll nicht die CultureInfo der ganzen Seite geändert (z.B. Ein Kalender oder DatePicker - immer "DE-de") werden, sondern ausschließlich in den erforderlichen Controls.

Auch ein simples Hinzufügen des Währungssymbols zu dem Betrag (ist ein decimal) wäre annehmbar, oder jedwede andere Variante damit z. B. statt 100,00 €, 100,00 Z? steht.

Es (€, Z?) darf eben nur nicht in der Property für den Betrag stehen.

Besser kann ich es nicht darlegen.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von echdeneth am 22.11.2019 12:10.

22.11.2019 11:52 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.279
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Wenn ich es richtig verstehe, hast du ja das Währungssymbol bereits durch die Auswahl in der ComboBox. Dann brauchst du doch nur den Währungsbetrag mit einem Custom-Format formatieren, wie von Abt beschrieben.
22.11.2019 12:18 Beiträge des Benutzers | zu Buddylist hinzufügen
echdeneth echdeneth ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.06.2019
Beiträge: 44
Entwicklungsumgebung: C# / Visual Studio 2017/19
Herkunft: Sachsen

Themenstarter Thema begonnen von echdeneth

echdeneth ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Nein, in der Combo für die Währung steht: EUR, PLN, CZK
Nach dem Betrag soll dann stehen 100,00 € u.s.w.
22.11.2019 12:32 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.443
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Wie soll das System denn automatisch von "EUR" auf "€" schließen?

Wenn du die Culture aber angibst, dann kannst du mittels new Culture(culture).NumberFormat.CurrencySymbol das dazugehörige Währungssymbol auslesen.
22.11.2019 14:05 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
echdeneth echdeneth ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.06.2019
Beiträge: 44
Entwicklungsumgebung: C# / Visual Studio 2017/19
Herkunft: Sachsen

Themenstarter Thema begonnen von echdeneth

echdeneth ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Th69:
Wie soll das System denn automatisch von "EUR" auf "€" schließen?

Über eine Abfrage/Methode im ViewModel

Zitat von Th69:
Wenn du die Culture aber angibst, dann kannst du mittels new Culture(culture).NumberFormat.CurrencySymbol
das dazugehörige Währungssymbol auslesen.

Das Problem ist weder das Anzeigen noch das Auslesen des Währungssymbols.
Etwas oberhalb im XAML-Code siehst du wie ich das Währungssymbol momentan anzeige.
Es wahrscheinlich gäbe noch andere Varianten. Da ich Binding und MVVM benutze,
kann ich beim Symbol nicht über sowas wie wert += währungssymbol verwenden.

Aber ich werde mir Format in Bindings mal genauer ansehen
25.11.2019 10:14 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Th69
myCSharp.de-Poweruser/ Experte

avatar-2578.jpg


Dabei seit: 01.04.2008
Beiträge: 3.443
Entwicklungsumgebung: Visual Studio 2015/17


Th69 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Du kannst doch einfach im ViewModel eine weitere Eigenschaft erstellen, welche wert + währungssymbol als string zurückgibt und daran dann binden.
25.11.2019 11:04 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
echdeneth echdeneth ist männlich
myCSharp.de-Mitglied

Dabei seit: 05.06.2019
Beiträge: 44
Entwicklungsumgebung: C# / Visual Studio 2017/19
Herkunft: Sachsen

Themenstarter Thema begonnen von echdeneth

echdeneth ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Th69:
Du kannst doch einfach im ViewModel eine weitere Eigenschaft erstellen, welche wert + währungssymbol als string zurückgibt und daran dann binden.

Stimmt... die Eigenschaft muss nicht im Model sein, sondern wird nur zum Anzeigen des Wertes + Währung verwendet.

Danke, probiere ich
26.11.2019 12:43 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 2 Monate.
Der letzte Beitrag ist älter als ein Monat.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 21.01.2020 19:14