Ich habe ein Wörterbuch, in dem die Schlüssel Zeichenfolgen sind, und die Werte Eigenschaften in der gleichen Klasse. Wie aktualisiere ich die Werte automatisch, wenn ich die Eigenschaften aktualisiere?Aktualisierung von Wörterbuchwerten automatisch auf Eigenschaften gesetzt
Hier relevanter Abschnitt der Modellklasse:
private Dictionary<string, string> _fields = new Dictionary<string, string>();
public Dictionary<string, string> Fields
{
get
{
return _fields;
}
}
public GPHDTModel()
{
_fields.Add("MessageID", MessageID);
}
private string _messageID;
public string MessageID
{
get { return _messageID; }
set { _messageID = value; OnPropertyChanged("MessageID"); }
}
Hier entsprechender Abschnitt von Viewmodel:
GPHDTModel gphdtModel = new GPHDTModel();
public MainWindowViewModel()
{
gphdtModel.MessageID = "3";
}
So gibt es einen Schlüssel "MessageID" mit einem Wert von MessageID
. Ich setze MessageID
auf 3, aber der Wert im Wörterbuch bleibt null. Ich habe mich mit dem Ereignis OnPropertyChanged
herumgemöbelt und versucht, auch ein ObservableDictionary
zu implementieren, aber kein Glück.
"Wie aktualisiere ich die Werte automatisch, wenn ich die Eigenschaften aktualisiere?" - Sie ändern Ihren Property-Setter, so dass er das Dictionary aktualisiert, oder Sie machen Ihre 'OnPropertyChanged'-Methode stattdessen ... Aber im Grunde muss etwas' _fields ["MessageID"] = MessageID; 'oder gleichwertig jedes Mal aufrufen Änderungen ... –
Sie können keinen Schlüssel hinzufügen, der bereits im Wörterbuch vorhanden ist. Sie ersetzen also mit _fields [Schlüsselname] = neuer Wert; – jdweng