以下は、データグリッド内のコンボボックスのXAMLスニペットです。
<data:DataGridTemplateColumn Header="Entry Mode">
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Path=EntryModeCombo,Mode=TwoWay}" DisplayMemberPath="Name" SelectedValuePath="Id" SelectedValue="{Binding Path=selectedEntryMode,Mode=TwoWay}" ></ComboBox>
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
Entrymodeはシステム内のエンティティであり、このエンティティのIdプロパティとNameプロパティは、コンボのDisplayMemberPathとSelectedValuePathを設定するために使用されます。
public class A
{
private ObservableCollection<EntryMode> _EntryModeCombo;
public ObservableCollection<EntryMode> EntryModeCombo
{
get { return _EntryModeCombo; }
set
{
_EntryModeCombo = value;
RaisePropertyChanged("EntryModeCombo");
}
}
private string _selectedEntryMode;
public string selectedEntryMode
{
get { return _selectedEntryMode; }
set
{
_selectedEntryMode = value;
RaisePropertyChanged("selectedEntryMode");
}
}
}
私のviewModelでは、クラスAの監視可能なコレクションを作成し、それを使用してグリッドをバインドしています。すべてがADDモードで正常に機能しますが、編集モードで、グリッドでコンボボックスの選択した値を設定しようとすると、機能しません。コンボボックスの作成は行われますが、選択されていないままです。selectedEntryModeプロパティが設定されている理由はわかりませんが、グリッドでのコンボ選択には影響しません。任意の提案をいただければ幸いです。ありがとうございます。