使用数据库

时间:2017-05-16 21:23:36

标签: c# wpf combobox datagrid

我无法使用其他类似问题的答案。我觉得我接近解决方案,但在一两点上挣扎。

  • 我需要ComboBoxColumn中的DataGrid
  • ComboBoxColumn默认显示项目现在存放的位置。
  • 我应该可以使用ComboBox更改地点。

以下是包含DataGrid的{​​{1}}:

ComboBox

这给了我库存地点的结果。好兆头。但是为了填补<DataGrid x:Name="goederenZoekenDataGrid" AutoGenerateColumns="False" EnableRowVirtualization="True" ItemsSource="{Binding}" Margin="10,315,10,120" RowDetailsVisibilityMode="VisibleWhenSelected" RowEditEnding="goederenZoekenDataGrid_RowEditEnding"> <DataGrid.Columns> <DataGridTextColumn x:Name="lotnummerLeverancierColumn" Binding="{Binding LotnummerLeverancier}" Header="Lotnr Leverancier" Width="auto"/> <DataGridTextColumn x:Name="grondstofomschrijvingColumn" Binding="{Binding Grondstofomschrijving}" Header="Grondstof" Width="auto"/> <DataGridTextColumn x:Name="leveranciersNaamColumn" Binding="{Binding LeveranciersNaam}" Header="Leverancier" Width="auto"/> <DataGridTemplateColumn x:Name="datumLeveringColumn" Header="Datum Levering" Width="auto"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <DatePicker SelectedDate="{Binding DatumLevering, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTextColumn x:Name="hoeveelheidGeleverdColumn" Binding="{Binding HoeveelheidGeleverd}" Header="Hoeveelheid IN" Width="auto"/> <DataGridTextColumn x:Name="eenheidColumn" Binding="{Binding Eenheid}" Header="Eenheid" Width="auto"/> <DataGridTextColumn x:Name="lotnummerINIDColumn" Binding="{Binding LotnummerINID}" Header="Lotnummer INID" Width="auto"/> <DataGridTemplateColumn x:Name="stockINOmschrijvingColumn" Header="Stockplaats IN" Width="auto"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <ComboBox Name="cmbStockINGrid" Text="{Binding StockINOmschrijving, Mode=Twoway, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged}" IsEditable="True" Height="20" SelectionChanged="cmbStockINGrid_SelectionChanged"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTextColumn x:Name="HoeveelheidStockINColumn" Binding="{Binding HoeveelheidStockIN}" Header="Hoeveelheid Stock" Width="auto"/> </DataGrid.Columns> </DataGrid> 所有其他地方,我必须犯错,因为没有结果返回。我最大的困难是ComboBox中使用的ComboBox名称无法在后面的代码中使用。

DataGridTemplateColumn.CellTemplate

结果在this image任何人都可以帮助我用sql中的选项填充ComboBox吗?

我的StockPlaatsINViewsource来自以下类:

private void cmbStockINGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    ComboBox combostockIN = (ComboBox)sender;
    stockPlaatsINViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("stockPlaatsINViewSource")));

    var manager = new LotnummersDBManager();

    using (var conLotnrs = manager.Getconnection())
    using (var comstockin = conLotnrs.CreateCommand())
    {
        comstockin.CommandType = CommandType.Text;
        comstockin.CommandText = "SELECT StockINOmschrijving FROM StockPlaatsIN order by StockINOmschrijving asc";

        conLotnrs.Open();

        using (var rdrstockin = comstockin.ExecuteReader())
        {
            while (rdrstockin.Read())
            {
                combostockIN.Items.Add(rdrstockin[0]);
            }//while
        } //using rdrStockPlaatsIN
    }//using Conlotnrs and ComStockPlaatsIN
}// cmbStockINGrid_SelectionChanged

PS:我尝试的其他可能性如下,但我甚至找不到如何使用namespace AdoGemeenschap { public class StockPlaatsIN : LotnummerIN { private Int32 stockplaatsinidValue; private String stockinValue; private decimal HoeveelstockinValue; public Int32 StockPlaatsINID { get { return stockplaatsinidValue; } set { stockplaatsinidValue = value; } } public String StockINOmschrijving { get { return stockinValue; } set { stockinValue = value; } } public decimal HoeveelheidStockIN { get { return HoeveelstockinValue; } set { HoeveelstockinValue = value; } } public StockPlaatsIN(Int32 stockinID, String stockbeschrijving, decimal hoeveelstockin, Int32 lotnrinid):base(lotnrinid) { this.StockPlaatsINID = stockinID; this.StockINOmschrijving = stockbeschrijving; this.StockINOmschrijving = stockbeschrijving; this.HoeveelheidStockIN = hoeveelstockin; } public StockPlaatsIN(string stockbeschrijving) { this.StockINOmschrijving = stockbeschrijving; } }

ComboBox

0 个答案:

没有答案