<Custom:DataGrid.ContextMenu>
<ContextMenu ItemsSource="{Binding MenuItemsList, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
</Custom:DataGrid.ContextMenu>
public ObservableCollection<MenuItem> MenuItemsList
{
get
{
ObservableCollection<MenuItemClass> list = new ObservableCollection<MenuItemClass>();
if (SelectedInspection != null)
{
switch (SelectedInspection.state.s_serverid)
{
case 1:
case 2:
list.Add(medit);
break;
case 3:
list.Add(msync);
list.Add(mview);
list.Add(mnewdoc);
break;
case 4:
list.Add(mview);
list.Add(mdelete);
break;
}
}
return list;
}
set
{
OnPropertyChanged("MenuItemsList");
}
}
ContextMenu(CM)位於UserControl 1(UC1)中。 窗口有2個用戶控件和主菜單來選擇這個控件。WPF MVVM Dynamic ContextMenu
選擇UC1
使用CM - OK
選擇UC2
選擇UC1
使用CM - OK
但
選擇UC1
使用CM - OK
選擇UC1
使用CM - 不更新CM物品
I認爲我應該在創建UC1的新視圖模型時更新UC1的視圖,但是如何? 或者可能是我應該重寫ContextMenu的實現?
只是一個小的信息:你不應該與UIElement的類型,來創建ObservableCollections。你應該在這裏使用一個持有你的商業邏輯的對象。 – Tomtom
@Tomtom你的意思是「自己的類」,例如? – Risa
是的,這就是我的意思 – Tomtom