2017-06-07 206 views
0

觀ConfigRole有2列,名稱和的IsEnabled(複選框)與按鈕編輯的每一行,複選框DataGrid中MVVM WPF

ConfigRole:

enter image description here

**如果複選框爲TRUE在ConfigRole視圖中的一行,當我點擊編輯按鈕時,我得到具有2列Name_Button和IsEnabled(CheckBox)的新的View Button_Lists ...並且我修改了每個IsEnabled的TRUe或FALSe。

**我OBJECTIF是:當的IsEnabled ConfigRole是假的,我想所有的IsEnabled Button_Lists默認爲FALSE,

ButtonList:

enter image description here

這是Button_Lists我try代碼型號:

// get all of ButtonsList 
public ObservableCollection<ButtonRoleMapClass> ButtonList 
    { 
     get { return _buttonList; } 
     set 
     { 
      _buttonList = value; 
      OnPropertyChanged("ButtonList"); 
     } 
    } 

    //viewRoleButton: the Name of selected row in ConfigRole 
    public ButtonListViewModel(ViewRoleMapClass viewRoleButton) 
    {    

     //If IsEnabled for row in ConfigRole is FALSE 
     if (viewRoleButton.IsEnabled==false) 
     { 
      ObservableCollection<ButtonRoleMapClass> butsList = new ObservableCollection<ButtonRoleMapClass>(); 
      foreach (ButtonRoleMapClass button in _buttonList) 
      { 
       button.IsEnabled = false; 
       butsList.Add(button); 
      } 
      _buttonList = butsList;     
     } 

我想獲得查看Button_Lists默認DataGrid中所有的複選框爲FALSE,

但是我的代碼,我有這樣的錯誤:enter image description here

我怎樣才能解決這個問題?

+0

有什麼錯誤?你可以給視圖的代碼嗎? – Etienne

+0

使用ButtonList = butsList直接。那麼你的PropertyChanged應該工作。 –

+0

不,_buttonList是值;所以_buttonList = butsList;是正確的 – devtunis

回答

2

確保您已通過添加if語句來初始化_buttonList,if語句檢查_buttonList是否爲null。如果你擺脫例外的,你知道ObservableCollection尚未初始化

你可能也想財產設置 uttonList到新的集合:

public ButtonListViewModel(ViewRoleMapClass viewRoleButton) 
{ 
    //If IsEnabled for row in ConfigRole is FALSE 
    if (viewRoleButton.IsEnabled == false) 
    { 
     ObservableCollection<ButtonRoleMapClass> butsList = new ObservableCollection<ButtonRoleMapClass>(); 
     if (_buttonList != null) 
     { 
      foreach (ButtonRoleMapClass button in _buttonList) 
      { 
       button.IsEnabled = false; 
       butsList.Add(button); 
      } 
     } 
     ButtonList = butsList; 
    } 
} 
+0

它現在有效,當我驗證if(_buttonList!= null) 非常感謝:) – devtunis