2017-05-19 5 views
-1

Ich habe eine readonly Abhängigkeitseigenschaft des Typs ToolBar zu meiner Kontrolle definiert.Füllen WPF ItemsControl-Eigenschaft in XAML

Wie kann ich diese ToolBar mit Elementen in XAML-Code füllen? Die ToolBar wird im Konstruktor meines Controls erstellt und ist schreibgeschützt.

kann ich

<ToolBar> 
    <MenuItem/> 
    <Button/> 
</ToolBar> 

schreiben, aber wenn ich

schreiben
<my:myControl.MyToolBar> 
    <MenuItem/> 
    <Button/> 
</my:myControl.MyToolBar> 

der Fehler sagt 'Property Eigenesymbolleiste unterstützt keine Werte von 'Button/MenuItem''

+0

Schreib '' 'innen ' ... '' – ASh

+0

ich vergaß zu erwähnen, dass die ToolBar, die Eigenesymbolleiste gesetzt in MyControl erstellt wird -Konstruktor und ist readonly, so ist dies nicht möglich – redstripes

Antwort

0

Wenn Sie erstellen eine benutzerdefinierte ToolBar Kontrolle erben sollte ToolBar oder HeaderedItemsControl

public class MyToolBar : HeaderedItemsControl 
{ 
} 

Und wenn MyToolBar eine Eigenschaft einer Kontrolle ist, sollten Sie es auf einen ToolBar Wert:

<my:myControl.MyToolBar> 
    <ToolBar> 
     <MenuItem/> 
     <Button/> 
    </ToolBar> 
</my:myControl.MyToolBar> 

Edit:

ich eine Nur-Lese-Abhängigkeitseigenschaft vom Typ definiert haben ToolBar zu meiner Kontrolle. Wie kann ich diese ToolBar mit Elementen in XAML-Code füllen?

Sie können nicht. Dies ist nicht in XAML unterstützt:

WPF: Cannot set items of a read-only collection in XAML

Denken Sie daran, dass XAML ist nur ein Markup Sprache.

+0

Ich habe vergessen zu erwähnen, dass die ToolBar, die auf MyToolBar gesetzt ist, in MyControl-Konstruktor erstellt wird und nur gelesen wird, so dass dies nicht möglich ist – redstripes

+0

Dann können Sie die Sammlung nicht in XAML. Dies wird nicht unterstützt. – mm8