Hei Leute Ich habe ein kleines Problem mit C#. Ich möchte ein MVC-System basteln bei dem die View ausgetauscht werden kann. Daher benötige ich für die View, die immer eine von UserControl geerbte Klasse ist, eine Art Interface, Prototyp oder Platzhalter oder was auch immer um diese anzusprechen können. Diese müsste aber so spezifiziert sein dass nur eine Klasse eingefügt werden kann die von UserControl erbt. Kann ich das in einem Interface o.ä. spezifizieren oder muss ich dafür auf die Reflection-Klasse zugreifen? Vielen Dank schon im Voraus für eure Hilfe.. Gruss Farin
Warum nimmst du nicht einfach "UserControl" als Platzhalter? Dann ist garantiert, dass jede Klasse du annimst von UserControl abgeleitet sein muss.
Würde ich so machen:
1 | class MVC : Control |
2 | {
|
3 | private UserControl _View; |
4 | |
5 | // default View
|
6 | public MVC() |
7 | {
|
8 | _View = new UserControl(); |
9 | ...
|
10 | }
|
11 | |
12 | // user View
|
13 | public MVC(UserControl View) |
14 | {
|
15 | _View = View; |
16 | ...
|
17 | }
|
18 | }
|
Und dann kannst du so weiter machen:
1 | public partial class Form1 : Form |
2 | {
|
3 | UserView userView1 = new UserView(); |
4 | public Form1() |
5 | {
|
6 | InitializeComponent(); |
7 | }
|
8 | |
9 | private void button1_Click(object sender, EventArgs e) |
10 | {
|
11 | MVC mvc = new MVC(userView1); |
12 | ...
|
13 | }
|
14 | |
15 | class UserView : UserControl |
16 | {
|
17 | ...
|
18 | }
|
19 | }
|
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.