我有一个包含ListBox的UserControl。 ListBox使用另一个UserControl作为DataTemplate。
<ListBox x:Uid="SectionList" x:Name="SectionList" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<expander:ExpanderDataTemplate/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
在后面的代码中,我将数据上下文设置为ObservableCollection。 ExpanderItem公开以下公共属性...... 字符串名称, ObservableCollection MenuItems, bool扩大了, UserControl控件 我为这些属性实现了INotifyPropertyChanged接口。
我的ExpanderDataTemplate看起来像这样......
<Border BorderThickness="0,1">
<Expander IsExpanded="{Binding Path=Expanded}" Content="{Binding Path=Control}">
<Expander.Header>
<StackPanel>
<TextBlock Text="{Binding Path=Name}"/>
<Menu x:Name="ConfigurationMenu" Background="Transparent">
<MenuItem x:Name="DropDownMenuItem" ItemsSource="{Binding Path=MenuItems}">
<MenuItem.Header>
<Image Source="..\..\images\dropdown_arrow.gif" SnapsToDevicePixels="True" Stretch="None"/>
</MenuItem.Header>
</MenuItem>
</Menu>
</StackPanel>
</Expander.Header>
</Expander>
</Border>
在这里,你可以看到我有数据限制所有四个属性Expanded,Control,Name和MenuItems。所有属性都被正确限制,并且可以看到期望的MenuItems。 MenuItems是System.Windows.Controls.MenuItem的ObservableCollection。
当我点击DropDownMenuItem时,我想实现所需的行为,我应该看到数据受限于MenuItems集合作为子菜单。
请帮我解决这个问题。谢谢。
答案 0 :(得分:0)
感谢您回复Aran。
没关系,我的代码背后有一个小错误。我没有正确设置MenuItems集合。现在工作正常。感谢。