gpt4 book ai didi

silverlight - 使用复选框选择项目

转载 作者:行者123 更新时间:2023-12-03 10:40:18 25 4
gpt4 key购买 nike

我正在构建一个 Silverlight 应用程序。我的要求是让用户从更大的技能列表中选择一些适用于他们的技能。

表格:候选人 => 候选人技能; SkillsCategories => 技能。我认为架构是不言自明的。前端会显示所有技能(分为不同的类别),当候选人登录时,复选框中只会显示他选择的技能。相当简单。

我的问题:我是否将所有技能实体带到前端,然后获取 CandidateSkill 实体,遍历它们并相应地设置复选框,或者它们是一种更简单/更好的方式?

谢谢

最佳答案

我建议构建一个用作 ViewModel 的类。该类应至少包含一个属性,以指示是否选择了项目、要呈现的文本以及模型实体本身或其键。

您可以通过将所有技能集左连接到单个候选人的技能并设置 IsSelected 来创建 View 模型对象集。对候选人技能的非空测试结果。

然后,您可以直接绑定(bind)到 ViewModel。

我曾经遇到过类似的情况(Users to Permissions 而不是 Candidates to Skills),我使用了 this resource作为起点。我希望它有所帮助。

在我的例子中,我有一个“保存”按钮,单击该按钮后,将运行一些代码隐藏代码来遍历所选项目并将它们提交到我的 Web 服务。在不知道您的数据和服务实现的细节的情况下,我不会用细节来混淆帖子。

祝你好运!

讨论评论

这是一个通过发出两个数据库调用来创建 View 模型的伪 LINQ 过程:

var userskills = database.CandidateSkills
.Where(cs => cs.UserId == someUserId)
.Select(cs => cs.SkillId)
.ToList();
var skills = from s in database.Skills
select new CandidateSkillViewModel()
{
Text = s.SkillName,
IsSelected = userskills.Contains(s.SkillId),
Value = s.SkillId
};
mylist.ItemsSource = skills;

这将为您提供可绑定(bind)的数据源。最终,使用这种模式,您必须手动将选择/取消选择转换为插入/删除。对我来说,我在按钮单击的处理程序中执行此操作。我检索一组新的候选技能,遍历列表中的项目,并根据需要插入/删除 CandidateSkill 的实例。

我意识到,纯粹主义者可能不会认为通过单击按钮将我的 View 模型状态解析为数据库操作是完整的 MVVM,但它对我有用。

我希望这会有所帮助。

关于silverlight - 使用复选框选择项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5860039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com