我无法使用其他类似问题的答案。我觉得我接近解决方案,但在一两点上挣扎。
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
结果在任何人都可以帮助我用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