簡體   English   中英

WPF MVVM動態上下文菜單

[英]WPF MVVM Dynamic ContextMenu

<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個用戶控件和用於選擇此控件的主菜單。

選擇UC1
使用CM-確定
選擇UC2
選擇UC1
使用CM-確定


選擇UC1
使用CM-確定
選擇UC1
使用CM-不更新CM項目

我想在創建新的UC1視圖模型時應該更新UC1的視圖,但是如何? 還是我應該重寫ContextMenu實現?

好的。

首先:

吸氣劑中的代碼應移至模型中。

現在到您的問題:

你的二傳手看起來應該像

set
{
   this.MenuItemsList = value;
   OnPropertyChanged("MenuItemsList");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM