ListBox MenuItem数据模板绑定

时间:2015-05-14 19:34:22

标签: c# binding menu

我有他的代码:

 <ListBox ItemsSource="{Binding ItemsList}">

            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Vertical">
                        <TextBlock Text="{Binding}"/>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>



        <ListBox.ContextMenu >
            <ContextMenu ItemsSource="{Binding MenuItemDataList}">

                    <DataTemplate DataType="{x:Type model:MenuItemData}" >
                        <MenuItem Header="{Binding Name}" />
                    </DataTemplate>
            </ContextMenu>
        </ListBox.ContextMenu>

    </ListBox>
</Grid>

当我右键单击以显示弹出菜单时,它会抛出此异常消息:

Items collection must be empty before using ItemsSource.

ItemsListMenuItemDataList是不同的集合。

1 个答案:

答案 0 :(得分:0)

我认为您需要将datatemplate放在ContextMenu.ItemTemplate

       <ListBox.ContextMenu >
            <ContextMenu ItemsSource="{Binding MenuItemDataList}">
                <ContextMenu.ItemTemplate>
                    <DataTemplate DataType="{x:Type model:MenuItemData}">
                        <MenuItem Header="{Binding Name}" />
                    </DataTemplate>
                </ContextMenu.ItemTemplate>

            </ContextMenu>
        </ListBox.ContextMenu>