2017-05-19 66 views
-1

我已經定義了一個只讀 ToolBar類型的依賴項屬性給我的控件。在XAML中填充WPF ItemsControl屬性

如何使用xaml代碼中的項目填充此ToolBar? 工具欄是在我的控件的構造函數中創建的並且是隻讀的。

我可以寫

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

,但是當我寫

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

錯誤說如果要創建 '物業MyToolBar不支持的值'按鈕/菜單項'

+0

寫'''裏面<我:myControl.MyToolBar>'...'' – ASh

+0

我忘了提,即它被設置爲MyToolBar工具欄中MyControl被創建 - 是隻讀的,所以這是不可能的 – redstripes

回答

0

自定義ToolBar控制它應該繼承ToolBarHeaderedItemsControl

public class MyToolBar : HeaderedItemsControl 
{ 
} 

如果MyToolBar是一個控件的屬性,就應該將其設置爲ToolBar值:

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

編輯:

我已經定義類型的只讀依賴屬性工具欄到我的控制。我如何使用xaml代碼中的項目填充此ToolBar?

你不行。這是不支持在XAML:

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

記住,XAML只是標記語言。

+0

我忘了提及,設置爲MyToolBar的ToolBar是在MyControl-Constructor中創建的並且是隻讀的,所以這是不可能的 – redstripes

+0

然後,您不能將集合填充到XAML。這不支持。 – mm8