第一次问题问了很长时间的潜伏者。
我正在开发一个具有实现 RadGridView 的视图的 Silverlight 应用程序。我有一个 ViewModel,它将 PersonSkills 的 ObservableCollection 绑定到该 RadGridView。在模型中,PersonSkills 是多对一技能。描述是技能的属性。他们通过 SkillId 上的外键加入(抱歉没有足够的代表来发布图片)
我在 RadGridView 中的列绑定到 Skill.Description 属性。一切正常,直到我在此处未表示的数据表单中进行编辑。PersonSkills 集合触发,我可以看到更改的值,并且更改发布到数据库,但 RadGridView 显示一个空单元格,而不是像它应该显示的 Skill.Description。
我需要做什么才能让 RadGridView 反映对作为 PersonSkills 集合的子项的 Skill 集合的 Property 所做的更改?
<telerik:RadGridView
x:Name="skillsGrid"
ItemsSource="{Binding PersonSkills, Mode=TwoWay}"
SelectedItem="{Binding CurrentPersonSkill, Mode=TwoWay}"
ColumnWidth="*">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn
Header="SKILL"
DataMemberBinding="{Binding Skill.Description}"
IsGroupable="False"
Width="2*" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
private ObservableCollection<PersonSkill> personSkills;
public ObservableCollection<PersonSkill> PersonSkills
{
get
{
return this.personSkills;
}
set
{
this.personSkills = value;
this.OnUiThread(() =>
{
this.RaisePropertyChanged("PersonSkills","CurrentPersonSkill");
});
}
}
private PersonSkill currentPersonSkill;
public PersonSkill CurrentPersonSkill
{
get
{
return this.currentPersonSkill;
}
set
{
if (this.currentPersonSkill != value)
{
this.currentPersonSkill = value;
this.RaisePropertyChanged("PersonSkills","CurrentPersonSkill");
}
}
}