我有一个简单的数据网格,里面有一个组合框:
<DataGrid AutoGenerateColumns="False" CanUserSortColumns="False" x:Name="DataGridassemble" ItemsSource="{Binding Cicli_ops}">
<DataGrid.Columns>
<DataGridComboBoxColumn Header="Prodotto" x:Name="tipo_prodotto" ItemsSource="{Binding}" SelectedItemBinding="{Binding tipo_prodotto}" Width="150"></DataGridComboBoxColumn></DataGrid.Columns>
组合框有4个值,由列表填充:
public ObservableCollection<Cicli_operazioni> Cicli_ops { get; set; }
//code etc
lista_prodotti.Add("cerchio");
lista_prodotti.Add("triangolo");
lista_prodotti.Add("quadrato");
lista_prodotti.Add("stella");
tipo_prodotto.ItemsSource = lista_prodotti;
//Cicli_operazioni class:
public class Cicli_operazioni
{
public string Tipo_prodotto {get;set;}
}
一切正常,组合框正确绑定,值显示等。 但是我想在datagrid中添加一些默认行,显示几行以使用户更容易。所以我试过了:
Cicli_ops.Add(Tipo_prodotto= "cerchio");
但元素是一个组合框,所以它给我一个错误,说我不能将字符串转换为datagridcomboboxcolumn,我真的不知道如何告诉它从中选择一个项目。
答案 0 :(得分:1)
Cicli_ops.Add(new Cicli_operazioni { Tipo_prodotto="cerchio" });
Tipo_prodotto是一个字符串,xaml变为
<DataGridComboBoxColumn Header="Prodotto" x:Name="tipo_prodotto" ItemsSource="{Binding}" SelectedItemBinding="{Binding Tipo_prodotto}"