我有一个问题,我在combobox框中有一个复选框列表,它看起来像这样:
<StackPanel Orientation="Vertical" DataContext="{Binding CandidateEntity}">
<StackPanel Orientation="Horizontal">
<ComboBox ItemsSource="{Binding DataContext.SkillSetEntities, ElementName=CrudCandidate }"
IsEditable="True" IsReadOnly="True" Text="Umiejętności">
<ComboBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Name}" IsChecked="{Binding IsChecked}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
</StackPanel>
现在我在绑定的项目源(CandidateEntity.SkillSets)中也有一组技能组对象,现在我该如何检查我的技能组对象集合中的那些复选框?
我想在表格中为CandidateEntity对象创建一个版本,该版本的一部分是在组合框中表示的技能组列表。
编辑:
我通过添加技能组模型道具来解决问题:
private bool _isSelected = false;
[NotMapped]
public bool IsSelected
{
get
{
return this._isSelected;
}
set
{
_isSelected = value;
}
}
然后在视图模型中:
private List<SkillSet> GetSkillSets()
{
var skillsetList = this._catalog.SkillSets.ToList();
var candidateSkillsetList = this.CandidateEntity.SkillSets.ToList();
foreach (SkillSet skillset in skillsetList)
{
foreach (SkillSet candidateSkillset in candidateSkillsetList)
{
if (skillset.id == candidateSkillset.id)
{
skillset.IsSelected = true;
}
}
}
return skillsetList;
}
和wpf中的复选框:
<CheckBox Content="{Binding Name}" IsChecked="{Binding IsSelected}"/>
但我很确定必须有更简单的方法来处理它,是吗?