У меня проблема с сохранением выбранного элемента в столбце DataGridTemplate ComboBox. У меня есть DataTemplate редактируемый столбец combobox как первый столбец в datagrid и рядом с ним, у меня есть текстовый столбец. DataGrid заполняется данными, считываемыми из хранимой процедуры SQL. Все работает отлично, за исключением случаев, когда я выбираю элемент в поле со списком и перемещаюсь в текстовое поле и начинаю вводить его, комбо-выбор заканчивается. Он очищает как новый элемент, так и существующий элемент. Как это ни странно, это происходит только в первый раз. Когда я повторно выбираю значение ComboBox или добавляю новый элемент снова и возвращаюсь в текстовое поле, он не затухает. У меня заканчиваются идеи и пробовал много комбинаций, но пока не повезло. Вот мой код:Ошибка привязки DataGrid ComboBox с выбранным или новым элементом
Это, как я наполнении DataGrid:
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "GetProducts";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = sqlConn;
var reader = cmd.ExecuteReader();
var dt = new DataTable();
dt.Load(reader);
dt.Columns["ProductName"].AllowDBNull = true;
dtProductCfgTable = dt;
ProductCfgGrid.ItemsSource = dtProductCfgTable.DefaultView;
}
Это декларация ProductNamesList:
public List<string> ProductNamesList { get; set; }
XAML:
<DataGridTemplateColumn Header="ProductName">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding ProductNamesList,
RelativeSource={RelativeSource AncestorType=Window}}"
SelectedItem="{Binding ProductName
IsSynchronizedWithCurrentItem="False"
BorderThickness="1.2 1.2 0 0" BorderBrush="Black"
Background="LightCyan" IsEditable="True" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Binding="{Binding ShippingAddress}"
Width="100"
Header="ShippingAddress"
Visibility="Visible"/>
Для чего вы установили свой datacontext? – Shoe
Я не задал какой-либо datacontext для Grid в этом случае –
Взгляните на http://stackoverflow.com/questions/3743269/editable-combobox-with-binding-to-value-not-in-list и попробуйте эти решения – Shoe