Forum: PC-Programmierung C# Interface für ein Control definieren


von Farin (Gast)


Lesenswert?

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

von Sharping (Gast)


Lesenswert?

Warum nimmst du nicht einfach "UserControl" als Platzhalter?
Dann ist garantiert, dass jede Klasse du annimst von UserControl 
abgeleitet sein muss.

von A. V. (kra5h)


Lesenswert?

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
Noch kein Account? Hier anmelden.