C# Datagrid MVVM WPF中的复选框
View ConfigRole有两列,分别为Name和IsEnabled(复选框),每行有编辑按钮 配置角色: **如果ConfigRole视图中的某一行的复选框为TRUE,则当我单击Edit按钮时,我会得到新的视图按钮列表,其中包含两列名称按钮和IsEnabled(复选框)…并且我会为每个IsEnabled修改TRUE或FALSe **我的目标是:当IsEnabled ConfigRole为FALSE时,我希望所有IsEnabled按钮列表都默认为FALSE 按钮列表: 这是我在按钮列表模型中的试用代码:C# Datagrid MVVM WPF中的复选框,c#,wpf,mvvm,C#,Wpf,Mvvm,View ConfigRole有两列,分别为Name和IsEnabled(复选框),每行有编辑按钮 配置角色: **如果ConfigRole视图中的某一行的复选框为TRUE,则当我单击Edit按钮时,我会得到新的视图按钮列表,其中包含两列名称按钮和IsEnabled(复选框)…并且我会为每个IsEnabled修改TRUE或FALSe **我的目标是:当IsEnabled ConfigRole为FALSE时,我希望所有IsEnabled按钮列表都默认为FALSE 按钮列表: 这是我在按钮列表模
// 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;
}
//获取所有按钮列表
公共可观察收集按钮列表
{
获取{return\u buttonList;}
设置
{
_按钮列表=值;
OnPropertyChanged(“按钮列表”);
}
}
//viewRoleButton:ConfigRole中选定行的名称
公共按钮ListViewModel(ViewRoleMapClass viewRoleButton)
{
//如果ConfigRole中的行的IsEnabled为FALSE
if(viewRoleButton.IsEnabled==false)
{
ObservableCollection butsList=新的ObservableCollection();
foreach(按钮列表中的按钮RoleMapClass按钮)
{
button.IsEnabled=false;
butsList.Add(按钮);
}
_按钮列表=按钮列表;
}
我想在Datagrid中获取查看按钮列表的所有复选框默认值为FALSE
但我的代码有以下错误:
如何修复它?通过添加检查
\u buttonList
是否为null
的if语句,确保已初始化\u buttonList
。如果清除异常,则知道observeCollection
尚未初始化
您可能还希望将ButtonList属性设置为新集合:
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;
}
}
public按钮ListViewModel(ViewRoleMapClass viewRoleButton)
{
//如果ConfigRole中的行的IsEnabled为FALSE
if(viewRoleButton.IsEnabled==false)
{
ObservableCollection butsList=新的ObservableCollection();
如果(_buttonList!=null)
{
foreach(按钮列表中的按钮RoleMapClass按钮)
{
button.IsEnabled=false;
butsList.Add(按钮);
}
}
按钮列表=按钮列表;
}
}
通过添加检查\u buttonList
是否为null
的if语句,确保已初始化\u buttonList
。如果清除异常,则知道ObservableCollection
尚未初始化
您可能还希望将ButtonList属性设置为新集合:
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;
}
}
public按钮ListViewModel(ViewRoleMapClass viewRoleButton)
{
//如果ConfigRole中的行的IsEnabled为FALSE
if(viewRoleButton.IsEnabled==false)
{
ObservableCollection butsList=新的ObservableCollection();
如果(_buttonList!=null)
{
foreach(按钮列表中的按钮RoleMapClass按钮)
{
button.IsEnabled=false;
butsList.Add(按钮);
}
}
按钮列表=按钮列表;
}
}
错误是什么?你能同时给出视图的代码吗?直接使用ButtonList=butsList。那么你的属性更改应该可以工作。不,_ButtonList是值;所以_ButtonList=butsList;正确吗?你在任何地方设置了_ButtonList的值吗?如果是,它的初始值为空。错误是什么?你能给出视图的代码吗?我们e ButtonList=butsList direct。那么您的属性更改应该会起作用。不,_ButtonList是值;所以_ButtonList=butsList;正确吗?您是否在任何地方设置了_ButtonList的值?如果是,它的初始值是null。当我验证(_ButtonList!=null)时,它现在起作用了。非常感谢:)现在,当我验证(_ButtonList!=null)非常感谢:)