Ich falle in eine seltsame Situation, so muss ich im Wesentlichen eine Dictionary
mit einer Zeichenfolge wie Key
und ein benutzerdefiniertes Objekt wie Value
erstellen. Die Dictionary
haben diese Umsetzung:Kann Wert nicht auf Dictionary Key setzen
public static Dictionary<string, ForecastType> FullTime
{
get
{
return new Dictionary<string, ForecastType>()
{
{ "1", new ForecastType { Type = SignType.PartialFinal, Sign = Signs.HomeHomePF } },
...
}
}
}
wie Sie ist der Schlüssel 1
sehen kann und der Wert ist eine benutzerdefinierte Klasse ForecastType
genannt:
public class ForecastType : ViewModel
{
private double _value;
public double Value
{
get { return _value; }
set
{
_value = value;
OnPropertyChanged();
}
}
public Signs Sign { get; set; }
public SignType Type { get; set; }
}
Eigentum Sign
und Type
keine explaination benötigen, es ist nur eine Implementierung eines Enum
. Die Eigenschaft Value
statt, verursacht mir eine Menge Kopfschmerzen. Insbesondere kann ich den Wert für diese Eigenschaft nicht festlegen, jeder Wert, den ich zuweisen, erhalte ich 0
.
Ich implementierte auch die ViewModel
, ich habe zu einem Problem auf PropertyChanged
bezogen, aber auch dies hat die Situation nicht behoben.
I valorisieren die Value
Eigenschaft auf diese Weise:
FullTime["1"].Value = 5;
Beachten Sie, dass die OnPropertyChanged()
korrekt genannt wird, und die value
Inneren ist 5
, aber, wenn ich es einen Haltepunkt, später die FullTime["1"]..
Linie I wie erhalten .Value
"0".
Was mache ich falsch?
Danke für jede Hilfe. Freundliche Grüße.
Weil Ihre Fulltime-Eigenschaft ein neues Wörterbuch zurückgibt Im get werden Änderungen, die Sie daran vornehmen, nicht beibehalten, da das Objekt jedes Mal neu erstellt wird, wenn Sie es aufrufen. –
@ JonathonChase oh, das ist richtig, gutes Auge! Aber leider muss ich ein "Dictionary" von dieser Eigenschaft zurückgeben – pivutali
Erstellen Sie ein neues Wörterbuch im Konstruktor, dann zurück, dass über 'get' –