我在保留DataGridTemplate列組合框中的選定項目時遇到問題。 我有DataTemplate可編輯組合框列作爲數據網格中的第一列,並在它旁邊,我有一個文本列。 DataGrid中填充了從SQL存儲過程中讀取的數據。一切正常,除了當我選擇組合框中的項目並移動到文本字段並開始輸入時,組合選擇將變爲空白。它爲新項目或現有項目填補了空白。奇怪的是,這只是第一次發生。當我重新選擇組合框值或再次添加新項目並返回到文本字段時,它不會空白。我正在用盡想法,嘗試了很多組合,但目前爲止還沒有運氣。 這裏是我的代碼:DataGrid組合框與所選項目或新項目的綁定問題
這是怎麼了填充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 –
看看http://stackoverflow.com/questions/3743269/editable-combobox-with-binding-to-value-not-in-list和嘗試那些解決方案 – Shoe