C# IDesignerHost und IServiceProvider.GetService
-
Hallo Community,
ich danke das viele Beiträe von diesem Forum mir schon weitergeholfen haben.
Nun habe ich allerdings ein Problem dessen lösung ich bisher nicht gefunden habe und darum richte ich es nun selbst an euch.ich schreibe derzeit eine etwas umgewandelte datagridview um diese in meinem steuerelement etablieren zu können muss ich für eine eigenschaft (Columns)einen eigenen editor anlegen damit ich diese weiterhin in der entwurfs phase gemütlich über propertys die Columns verwallten kann. dabei muss ich nun auch die Methode EditValue überschreiben:
hier Methoden Kopf:public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)
meine frage ist nun Folgendes ich habe ein wenig nachgeforscht wie man so einen editor überschreibt und bin im grunde fertig nur bei einer zeile Code die ich nicht verstehe aber scheinbar benötige da sonst die Form des Editors nicht aufgerufen wird verstehe ich absolut nicht.
IDesignerHost host = (IDesignerHost)provider.GetService(typeof(IDesignerHost));
Ich habe in MSDN und Foren geschaut aber ich verstehe einfach nicht was genau IDesignerHost für ein Interface ist und was das interface IServiceProvider genau macht
Ich wäre euch sehr dankbar wenn ihr mir einmal genau erklären könntet was diese Zeile Code bedeutet und was die einzelnen Interfaces machen (Ich habe auf MSDN nachgesehen und verstehe die kurze erlärung dort nicht)
ich stelle die frage da bei der ausführung des Codes der "host" immer Null ist und ich gerne die hintergründe des IServiceProvider verstehen möchte damit ich mein Steuerelement dahingehend anpassen kann das ebend nicht mehr null sonderen ein vernünftiger IDesigner zurückgegeben wird.Anregungen und Ideen warum immer nur "null" zurückgegeben wird wären schön.
mit freundlich Grüßen
Schrotti
-
Lang ist es her. Hab mal in ein Projekt von mir reingeschaut, und ich hab sowas nicht gebraucht. Wofür brauchst du das also?