データグリッド内にコンボボックスを生成し、選択したアイテムをバインドする必要があります。辞書を使用してデータグリッドをバインドしています。値はバインドされていますが、選択されたアイテムではありません。これが私のコードです!
private DataGridTemplateColumn CreateColumnEditTemplate(string fieldName, ObservableCollection<CommonFieldValue> fieldNames)
{
DataGridTemplateColumn outData = new DataGridTemplateColumn();
StringBuilder xamlData = new StringBuilder();
xamlData.Append("<DataTemplate ");
xamlData.Append("xmlns='http://schemas.microsoft.com/winfx/");
xamlData.Append("2006/xaml/presentation' ");
xamlData.Append("xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' ");
xamlData.Append("xmlns:basics='clr-namespace:System.Windows.Controls;");
xamlData.Append("assembly=System.Windows.Controls' >");
xamlData.Append("<ComboBox SelectedItem='{Binding " + fieldName + ",Mode=TwoWay}' SelectedValuePath=\"Content\" >");
foreach (var field in fieldNames)
xamlData.Append("<ComboBoxItem Content='" + field.FieldValue + "'/>");
xamlData.Append("</ComboBox> ");
xamlData.Append("</DataTemplate>");
outData.CellEditingTemplate = (DataTemplate)System.Windows.Markup.XamlReader.Load(xamlData.ToString());
return outData;
}
テンプレート列を作成し、データテンプレートを追加しています。