Ano děkuji, na tomto řešení jsem již zapracoval a je funkční. Přesto bych měl ještě dotaz. Mám control, v němž je veřejná vlastnost s privátním setterem. Původně jsem vytvořil instanci již v konstruktoru controlu, chtěl jsem, aby byly rovnou dostupní členové této vlastnosti. Př:
public class Ctrl: Control
{
public Ctrl()
{
Connection = new ConnectionDetil();
}
public ConnectionDetail Connection { get; private set; }
}
public class ConnectionDetail
{
public long IndexGroup { get; set; }
public long IndexOffset { get; set; }
...
}
Což v rámci OOP je v pořádku. Problém nastal ve chvíli kdy jsem chtěl tuto vlastnost nastavovat v designeru Visual Studia. V jiném tématu jsem se dozvěděl, že musím vytvořit TypeConverter třídy ConnectionDetail, a dát ho jako atribut vlastnosti. Což funguje, ale jen když má vlastnost getter i setter veřejný. A nesmím instanci vytvářet v kódu. Ale buď kliknutím v designeru na tlačítko "New" nebo napsáním příslušného zápisu v XAML. Pokud má vlastnost privátní setter, tak se zobrazí disablovaný textbox s názvem třídy (což by bylo dobře - instance by byla vytvořená v construktoru), ale nejde rozvinout a nastavovat členy vlastnosti (IndexGroup ...). Už nějak nevím jak donutit VS, aby zobrazovalo členy instancované vlastnosti. Např.: Microsoftí controly mají vlastnost margin (což je také třída i když s public přístupy) a nenabízejí nejdřív tlačítko New pro instanci, a až potom dovolí nastavení této vlastnosti.
|