Property eines null objects setzen (C#)

S

Struct

Gast
Guten Abend

ich arbeite gerade an einem Projekt bei dem über Netzwerk Pakete/Transmissions reinkommen und diese werden dann in einem Fenster (WPF, C#) dargestellt.

In meinem XAML file binde ich dafür das Object bzw. dessen Property Name:

Code:
<DataGridTextColumn Width="300" Binding="{Binding Path=ApTransmission.Type.TypeName, Mode=OneWay}">
	<DataGridTextColumn.Header>
		<Label>Packet Type</Label>
	</DataGridTextColumn.Header>
</DataGridTextColumn>


Dann hab ich eine Klasse namens ApTransmission.cs mit dem Property:
Code:
private IApType type;

public IApType Type
{
	get 
	{
		return type;
	}

	set
	{
		type = value;
		NotifyPropertyChanged("Type");
	}
}

Jetzt können 3 Dinge passieren. Eine Paket:
- hat einen Type
- hat keinen Type
- ist unbekannt.

Wenn das Paket einen Type hat läuft alles ok. Das Object type mit dem Property TypeName wird an das WPF gebunden und der Typname dargestellt.

Problem:
Wenn ein Paket keinen Type enthält soll in der Spalte das Wort Permanent stehen.
Wenn das Paket unbekannt ist soll in der Spalte das Wort Unknown stehen.

In meinem Programm wird das object type angelegt und der Name als Property gespeichert. Das klappt auch alles weiter und wird im WPF angezeigt.

Wenn das Paket aber keinen Type hat bzw. nicht vom Typ Type ist (sry, bissl kompliziert), dann wird es auch nicht erstellt und mein WPF bekommt ein null object zurück. Auch wenn es unbekannt ist bekommt WPF ein null object zurück:

Was will ich?
Gibt es eine Möglichkeit ein object zu erstellen welches nur als Property einen Namen hat?
So kann ich dann bei meinen Abfragen einfach ein object mit dem Property TypeName = "unknown" oder Property TypeName = "Permanent" erstellen und an WPF weitergeben. Quasi so:

Code:
IApType unknown = new IApType { TypeName = "unknown" };
IApType permanent= new IApType { TypeName = "Permanent" };

Übrigens ist die Klasse Type abstrakt.

Hoffe ich konnte es einigermaßen erklären. Danke für die Hilfe
 
Zuletzt bearbeitet:
AW: fdfsdafsdafdsa

Oh mist das hatte ich noch drin weil ich den Beitrag in der Vorschau ansehen wollte und den Titel noch nicht drin hatte.
 
Eine Möglichkeit wäre, einen Konverter dazwischen zu setzen (den genauen Namen für diese Strukturen habe ich nicht im Kopf). Der bekommt dann das Objekt und du entscheidest dann, was angezeigt werden soll.
 
Hallo,

habe einen Converter erstellt und die Ausgabe des normalen Types klappt auch.

Der Rest geht aber leider nicht weil:
1. kein null object übergeben wird und ich
2. wenn ein null object übergeben werden sollte nicht unterscheiden kann ob es Parmanent oder Unknown ist

Hat noch jemand eine Idee?

(Kann es auch im C# Forum versuchen, wollte nur kein Crossposting machen)
 
Warum kann/muss Type denn null sein. Belege es doch standardmäßig mit "Permanent", wenn du eine ApTransmission erstellst. Oder "None".
 
Zurück
Oben