[英]How do I reuse item children via a style in XAML?
我有一個 WPF 子菜單,我想在 XAML 的幾個地方重用它。 它是八個<MenuItem>
元素的集合,其中包含一些我不想復制/粘貼的復雜綁定。 但是,每種情況下的持有者都不同:在一個地方,父項是<Menu>
,在另一個地方,父項是<ContextMenu>
的<MenuItem>
<ContextMenu>
。
我一直在我的<Style>
嘗試使用<Setter Property="Items">
<Style>
但我想我可能走錯了路。
為了具體化,我試圖從這樣的事情中減少代碼重復:
<Menu>
<MenuItem Header="Details" IsCheckable="True" ... />
<MenuItem Header="List" IsCheckable="True" ... />
<MenuItem Header="Thumbnails" IsCheckable="True" ... />
...
</Menu>
...
<ContextMenu>
<MenuItem Header="View">
<MenuItem Header="Details" IsCheckable="True" ... />
<MenuItem Header="List" IsCheckable="True" ... />
<MenuItem Header="Thumbnails" IsCheckable="True" ... />
...
</MenuItem>
</ContextMenu>
這樣的事情怎么樣:
您需要在資源字典中創建以下集合:
<Collections:ArrayList x:Key="MenuItems" x:Shared="false">
<MenuItem Header="Details" />
<MenuItem Header="List" />
<MenuItem Header="Thumbnails" />
</Collections:ArrayList>
您需要添加以下命名空間:
xmlns:Collections="clr-namespace:System.Collections;assembly=mscorlib"
...
然后只需使用集合:
<Menu ItemsSource="{StaticResource MenuItems}" />
...
<ContextMenu>
<MenuItem Header="View" ItemsSource="{StaticResource MenuItems}" />
</ContextMenu>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.