Dies gilt wahrscheinlich für andere Orte, aber in WinForms, wenn ich Binding verwende finde ich viele Methoden wollen den Namen der Eigenschaft zu binden nehmen. Etwas wie:Gibt es eine Möglichkeit, die C# -Bindung statisch zu machen?
class Person
{
public String Name { get { ... } set { ... } }
public int Age { get { ... } set { ... } }
}
class PersonView
{
void Bind(Person p)
{
nameControl.Bind(p,"Name");
ageControl.Bind(p,"Age");
}
}
Das große Problem, das ich mit diesem halten ist, dass „Name“ und „Alter“ als Zeichenkette angegeben. Dies bedeutet, dass der Compiler keine Hilfe bietet, wenn jemand eine der Eigenschaften von Person umbenennt. Der Code wird gut kompiliert, aber die Bindungen werden unterbrochen.
Gibt es eine Standardlösung, die ich verpasst habe? Es fühlt sich an, als ob ich ein Schlüsselwort benötige, vielleicht auch stringof, um mit dem vorhandenen Typ übereinzustimmen. Man kann es benutzen so etwas wie:
ageControl.Bind(p,stringof(p.Age).Name);
stringof könnte eine Klasse zurück, die Eigenschaften für immer den vollständigen Pfad, einen Teil des Weges hat, oder die Zeichenfolge, so dass Sie es selbst bis analysieren können.
Ist so etwas schon machbar?
Dies ist nicht C#, die viel dynamisch, dass bindet, diese sind WinForms. –
Wahr. Diese Art von Sprachfeature kann jedoch nützlich sein, auch wenn Sie keine WinForms verwenden. –