我的C#代码中有一个集合
private ObservableCollection<UserForms> _userForms =
new ObservableCollection<UserForms>();
public ObservableCollection<UserForms> UserForms { get { return _userForms; } }
我正在用4个值填充集合
foreach (DataRow dr in DataTable.Rows)
{
UserForms.Add(new UserForms()
{
FormID = Convert.ToInt32(dr["FormID"]),
FormName = dr["FormName"].ToString(),
FromSyName = dr["FormSyName"].ToString(),
Visibility = false,
RoleAdd=false,
RoleEdit=false,
RoleDelete=false
});
}
我在Form_Load()
事件
现在我要更新
Visibility = true,
RoleAdd=true,
RoleEdit=true,
RoleDelete=true
在集合中的指定行。
答案 0 :(得分:1)
您只需执行以下操作:
UserForms[0].Visibility = true;
其中“[0]”是索引。
答案 1 :(得分:0)
如果您的ObservableCollection
是可枚举的(通常是哪些集合),您可以使用foreach循环,如下所示:
foreach(UserForms uf in UserForms)
{
if (uf.FormID > 10)
uf.Visibility = true;
}
在上面的代码中,我更改了FormID
大于10的行的可见性。
答案 2 :(得分:0)
看起来您需要过滤掉一些项目然后更新它们。
foreach(UserForms uf in UserForms.Where(i=>i.FormName == "FormName"/*put your filtering criteria here*/))
{
uf.Visibility = true;
// Set all needed properties here
}
答案 3 :(得分:0)
您想要访问集合的实例。
_userForms.ToList().ForEach((f) => f.Visibility = true);
或者如果您知道索引并想要更新单个项目。
_userForms[index].Visibility = true;
或多个过滤条目
var filterColl = coll.Where((c)=> c.FormName.StartsWith("A"));
filterColl.ToList().ForEach((f) => f.Visibility = true);
希望这会有所帮助..