Hallo zusammen,
als Beispiel habe ich folgendes Model:
public class CarModel : ViewModelBase
{
public string Prop_1 { get; set; }
public string Prop_2 { get; set; }
public string Prop_3 { get; set; }
public string Prop_4 { get; set; }
}
Das MainViewModel sieht folgendermaßen aus:
public class MainViewModel : ViewModelBase
{
public CarModel myCar = new CarModel();
}
Jetzt die Frage:
Ist es möglich auf die einzelnen Eigenschaften des Models zuzugreifen, auch wenn sich die Zahl ändert und durch ein string oder int übergeben wird ? Ich denke dabei an so etwas wie:
public class MainViewModel : ViewModelBase
{
public CarModel myCar = new CarModel();
myCar.Prop_ & "1" = "irgendwas";
}
Mich würde interessieren ob und wenn ja, wie, dies umgesetzt werden kann. Den Sinn und Unsinn solchen Codes lassen wir einfach mal außen vor.
Vielen Dank schon mal für Eure Hilfe !!
<--- Wer übt, ist feige ! --->
Man könnte ein Dictionary<String, object> verwenden. Allerdings geht dann die OOP über den Haufen weil gecastet werden muss.
Hallo CombatKarl
dynamic oder Dictionary<string, object>. Ist aber meistens ein Zeichen, dass da was falsch angegangen wird. Nummeriert Variabeln, wieso? Nutze Arrays oder Listen.
Grüsse
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011
Dynamische Properties gehen theoretisch (aber umständlich) mit DynamicObject.
Einfacher wäre, wie witte schon sagt, ein Dictionary und das ist auch gar nicht mal so unüblich, wenn man wirklich dynamische Daten braucht.
Nummerierte Properties sind aber vermutlich eher ein Zeichen für eine Auflistung.
Und es kann auch gut sein, dass Du da gerade einen strukturellen Fehler einbaust, aber das kannst nur Du sicher wissen.
Allerdings geht dann die OOP über den Haufen weil gecastet werden muss.
Das hat aber nicht wirklich etwas miteinander zu tun.
Die OOP ist ein Konzept, Casten musst Du aber so oder so, sobald Du mit verschiedenen Typen arbeiten willst.
"object" ist ja auch nur eine Klasse, von der alle anderen Typen implizit ableiten.
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.
Ich glaube witte meint damit, dass es nicht mehr reine Polymorphie ist.
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011
Den Sinn und Unsinn solchen Codes lassen wir einfach mal außen vor.
Der Sinn des Ganzen wäre aber interessant, um eine echte Alternative aufzeigen zu können.
Ansonsten steht eigentlich alles dazu in [FAQ] Variablennamen zur Laufzeit zusammensetzen / Dynamisches Erzeugen von Controls
Weeks of programming can save you hours of planning