我正在尋找一種方法 - 如果可能的話 - 從文本菜單中的Windows Phone刪除菜單項控制的7我可以從文本菜單在WP7
這裏是我的XAML的簡化版本:
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
[ -- Content -- ]
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Header="view attributes" Tag="ATTRIBUTES" Click="ViewSelectedResultAttributes" />
<toolkit:MenuItem Header="view groups" Tag="GROUPS" Click="ViewSelectedResultGroups" />
<toolkit:MenuItem Header="view webpage" Tag="ONLINE" Click="ViewWebPage" />
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
現在,不是所有邊界集合中的項目都有一個與之相關的網站,併爲這些項目我希望與標籤ONLINE(即最後一個菜單項)刪除菜單項。
但我無法找到實現此目的的方法。
我也想加入的ContextMenu和所有的MenuItems編程,這樣我可以有條件地添加菜單項各的,但我似乎無法找到一個事件,如OnItemDataBound或OnDataBinding,等。
任何人都可以幫我嗎?
更新:只是爲了更具體,我不想從文本菜單上每綁定項在列表框中刪除一個菜單項,我只希望到時在列表框卸下具體項的菜單項綁定對象失敗的條件。
比方說,我的列表框包含3個綁定物品: ListItem_1, ListItem_2, ListItem_3
現在,讓我們說,勢必ListItem_2對象都有其屬性爲NULL之一;在這種情況下,ListItem_2應該從其ContextMenu中刪除一個MenuItem控件,而ListItem_1和ListItem_3仍應具有此MenuItem。
什麼是理想的事件,它允許我捕獲每個項目,因爲它被綁定,並且還暴露了ContextMenu。 ListBox.Items集合簡單地返回與我分配給數據源的對象相同的集合,而ListBoxItems集合會更有用 - 這是否存在?
感謝您的回覆,KooKiz。不過,我想從一些但不是全部的綁定項中移除MenuItem。我知道如何簡單地刪除一個MenuItem;我希望在這裏實現的是有條件地爲ListBox中的每個綁定項目呈現/移除MenuItem。 換句話說,一些綁定的物品有它,其他的沒有它。 – awj
您是否嘗試過使用上下文菜單的'Loaded'事件? –
我已經添加了Loaded事件並插入了您的代碼,但無法獲取ContextMenu:http://screencast.com/t/fEZ6lpjKXnd我懷疑這是因爲有一個ContextMenu實例用於採集。我已經將原始問題修改爲更具體。 – awj