Autor Beitrag
FrEEzE2046
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Windows 98, 2000, XP Pro, Vista Ultimate 32 & 64 Bit, Windows 7 Beta 64 Bit
C/C++, C# (VS 2008 TeamSystem) - Delphi (Delphi 5) - Java (Eclipse)
BeitragVerfasst: Fr 27.08.10 13:31 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 27.08.10 18:26 
user profile iconFrEEzE2046 hat folgendes geschrieben Zum zitierten Posting springen:
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.

_________________
>λ=
FrEEzE2046 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109

Windows 98, 2000, XP Pro, Vista Ultimate 32 & 64 Bit, Windows 7 Beta 64 Bit
C/C++, C# (VS 2008 TeamSystem) - Delphi (Delphi 5) - Java (Eclipse)
BeitragVerfasst: Fr 27.08.10 18:58 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconFrEEzE2046 hat folgendes geschrieben Zum zitierten Posting springen:
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.


Du sprichst dabei aber von einem zusätzlichen Property korrekt? Wie kann ich dem Grid-Feld denn einen ValueConverter hinzufügen? Ich denke mal, dass das Enum - ohne weiteres - sicher nicht direkt in Text konvertiert wird oder?
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 27.08.10 21:32 
user profile iconFrEEzE2046 hat folgendes geschrieben Zum zitierten Posting springen:
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).

user profile iconFrEEzE2046 hat folgendes geschrieben Zum zitierten Posting springen:
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.

_________________
>λ=