选择后ContextMenu不会消失。

时间:2013-05-01 15:49:34

标签: c# windows-phone-7 xaml contextmenu

我有以下代码将上下文菜单添加到UI上的文本框中。用户应该能够调出上下文菜单并选择要使用的新单元。所以我的视图模型中的方法CurrentUnits绑定到文本框。我想要一个由所有潜在单位填充的上下文菜单。所以我视图模型中的单位方法返回一个单位选项的字符串[];例如英寸,厘米,英尺,米等。当用户选择一个方法时,调用NewUnits_Click方法。一切正常,但是当用户选择菜单选项时,上下文菜单不会消失。按下屏幕上的其他位置(如应用程序菜单栏)将清除它。有没有其他人看到这个问题,或看到下面的代码有问题。它似乎与我所拥有的ItemTemplate / DataTemplate有关,因为手工创建一组菜单项工作正常。

    <TextBlock Width="100" Text="{Binding CurrentUnits}" TextAlignment="Right">
        <toolkit:ContextMenuService.ContextMenu>
            <toolkit:ContextMenu ItemsSource="{Binding Units}">
                <toolkit:ContextMenu.ItemTemplate>
                    <DataTemplate>
                        <toolkit:MenuItem Header="{Binding}" Click="NewUnits_Click" />
                    </DataTemplate>
                </toolkit:ContextMenu.ItemTemplate>
            </toolkit:ContextMenu>
        </toolkit:ContextMenuService.ContextMenu>
    </TextBlock>

1 个答案:

答案 0 :(得分:0)

如果您在使用WPF时没有使用MVVM,我强烈建议您开始这样做。即使你不是,我建议不要绑定到Click而是绑定在Command属性上,它需要实现ICommand的东西。我认为你想要的行为,WPF中的按钮和菜单项旨在绑定到命令,它不仅仅是WinForms 2.0。

另一个解决方案是隐藏代码隐藏中的Context菜单。也许this resource会帮助你实现这一目标。