初めての質問は、長年の潜伏者に尋ねました。
RadGridView を実装するビューを使用して Silverlight アプリに取り組んでいます。PersonSkills の ObservableCollection をその RadGridView にバインドする ViewModel があります。モデルでは、PersonSkills は多対 1 のスキルです。説明はスキルのプロパティです。これらは、SkillId の外部キーによって結合されます (画像を投稿するのに十分な担当者がいません)。
RadGridView の列バインディングは、Skill.Description プロパティに対するものです。ここに表示されていないデータフォームを編集するまで、すべて正常に動作します。PersonSkills コレクションが起動し、変更された値が表示され、変更がデータベースに投稿されますが、RadGridView には Skill.Description の代わりに空のセルが表示されます。
PersonSkills コレクションの子である Skill コレクションの Property に加えられた変更を RadGridView に反映するには、どうすればよいですか?
<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");
}
}
}