Entwickler-Ecke
WPF / Silverlight - ValueConverter für DomainServiceContext im DataGrid
FrEEzE2046 - Fr 27.08.10 12:31
Titel: ValueConverter für DomainServiceContext im DataGrid
Hallo,
ich habe eine Silverlight Business Application in welcher ich zwei Tabellen als ADO.NET Entity importiert habe. Auf diese greife ich über einen DomainService zu.
Ich habe die GetTable-Query dem ItemSource eines DataGrids zugewiesen. Nun habe ich eine Spalte vom Typ "bit", welche im Endeffekt ein Enum repräsentiert, was zwei verschiedene Werte annehmen kann. Da das DataGrid editierbar sein soll, möchte ich nicht, dass der User 0 oder 1, sondern sprechende Bezeichner verwenden kann.
Am liebsten würde ich das Ganze auch im Code so ansprechen können. Ich würde also gerne den bool Typ in ein Enum konvertieren.
Wie ist das - insbesondere hinsichtlich der Anzeige im Grid - möglich? Vielen Dank vorab.
Kha - Fr 27.08.10 17:26
FrEEzE2046 hat folgendes geschrieben : |
| Am liebsten würde ich das Ganze auch im Code so ansprechen können. Ich würde also gerne den bool Typ in ein Enum konvertieren. |
Ich glaube nicht, dass du dem EF oder den RIA Services sagen kannst, die Property automatisch zu konvertieren, aber du kannst deiner Entity-Klasse auf jeden Fall eine Enum-Property hinzufügen, die nicht auf einem Feld aufbaut, sondern direkt deine Bit-Property ausliest/beschreibt. Dann kannst du sie sie sowohl stark typisiert im Code verwenden als auch ohne IValueConverter direkt binden.
Kha - Fr 27.08.10 20:32
FrEEzE2046 hat folgendes geschrieben : |
| Du sprichst dabei aber von einem zusätzlichen Property korrekt? |
Jupp. Bei MVVM kann es auch mal vorkommen, dass sich drei Properties ein Feld teilen (Mache ich jedenfalls gern, bevor ich einen ValueConverter schreiben muss, der nur an einer einzigen Stelle benutzt wird; aber hier ist es wie gesagt wohl sowieso die einzige Möglichkeit).
FrEEzE2046 hat folgendes geschrieben : |
| Ich denke mal, dass das Enum - ohne weiteres - sicher nicht direkt in Text konvertiert wird oder? |
Doch, das macht
Enum.ToString() schon. Wenn der User aber den Wert auch als Text setzen soll und nicht etwa über eine Combobox o.Ä., wirst du um einen Converter mit
Enum.Parse auf dem Rückweg nicht herumkommen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!