WP7:将ContextMenu的datatemplate中的MenuItem绑定到List <t> </t>

时间:2011-04-02 19:15:21

标签: windows-phone-7 binding contextmenu datatemplate

我是Xaml开发的新手(WPF,Sliverlight,WP7)。

这是我的问题:

我有一个自定义按钮,当我点击它(长按或按住)时,我想打开一个与List相关的特定contextMenu。这意味着,由于我们点击的按钮,menuItem标题有不同的文本。

以下是示例代码: 我的清单

public class ListTest
{
    private List<string> testList;

    public List<string> TestList
    {
        get { return testList; }
        set { testList = value; }
    }


    public ListTest()
    {
        testList = new List<string>();
        testList.Add("1st Header");
        testList.Add("2nd Header");
        testList.Add("3rd Header");
        testList.Add("4th Header");
    }
}

我的主页WP7

public MainPage()
    {
        InitializeComponent();
        ListTest tst = new ListTest();
        this.DataContext = tst.TestList;
    }

我的XAML代码

 <my:OwnButton IconSource="Image/beer.png" DrinkText="Beer" x:Name="btnBeer1">
                    </toolkit:GestureService.GestureListener>
                    <toolkit:ContextMenuService.ContextMenu>
                        <toolkit:ContextMenu ItemsSource="{Binding}">
                            <toolkit:ContextMenu.ItemTemplate>
                                <DataTemplate >
                                    <toolkit:MenuItem Header="{Binding}" /> 
                                </DataTemplate>
                            </toolkit:ContextMenu.ItemTemplate>

                        </toolkit:ContextMenu>
                    </toolkit:ContextMenuService.ContextMenu>
                </my:OwnButton>

Acutally,我认为我的contextmenu menuitem会自动填充List,因为这个列表被设置为MainPage的DataContext。当我运行我的应用程序时,我的contextmenu是空的。帮助

1 个答案:

答案 0 :(得分:0)

尝试将数据模板更改为:

<DataTemplate >
    <toolkit:MenuItem Header="{Binding TestList}" /> 
</DataTemplate>