Я пытался создать список предложений. Это означает, что когда я набираю штрих-код, все штрих-коды, начиная с того, что я набрал, должны отображаться в другой сетке данных.
Сетка данных отображает правильное количество строк, но не содержимое, даже если заголовок не отображается.
Я попытался создать Datagrid из 6 столбцов и написал код для отображения Datagrid в свойстве TextChanged текстового поля со штрих-кодом.
Моя часть XAML:
<Grid Grid.Column="0" Grid.Row="1" Margin="10">
<DataGrid CanUserAddRows="False" Visibility="Hidden" Style="{StaticResource DataGridListing}" x:Name="DataGridSalesSuggestion" Height="{Binding ActualHeight, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type Grid}, Mode=FindAncestor}}" Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type Grid}, Mode=FindAncestor}}">
<DataGridTextColumn IsReadOnly="True" Width="1*" Header="{Binding barcode, Source={StaticResource Strings}}" x:Name="DataGridSuggestionItemName" Binding="{Binding BarCode}" />
<DataGridTextColumn IsReadOnly="True" Width="1*" Header="{Binding ItemCode, Source={StaticResource Strings}}" x:Name="DataGridSuggestionItemCode" Binding="{Binding ItemCode}" />
<DataGridTextColumn IsReadOnly="True" Width="1*" Header="{Binding itemName, Source={StaticResource Strings}}" x:Name="DataGridSuggestionBarcode" Binding="{Binding ItemName}" />
<DataGridTextColumn IsReadOnly="True" Width="1*" Header="{Binding UnitQuantity, Source={StaticResource Strings}}" x:Name="DataGridSuggestionUnitQty" Binding="{Binding UnitQuantity}" />
<DataGridTextColumn IsReadOnly="True" Width="1*" Header="{Binding price, Source={StaticResource Strings}}" x:Name="DataGridColumnSuggestionPrice" Binding="{Binding PricePerUnit}" />
<DataGridTextColumn IsReadOnly="True" Width="1*" Header="{Binding StockQty, Source={StaticResource Strings}}" x:Name="DataGridColumnSuggestionStockQty" Binding="{Binding StockQuantity}" />
</DataGrid>
</Grid>
Code-Behind:
private void TextboxBarCodeTextchanged(object sender, TextChangedEventArgs e)
{
Stock obj = DataGridSalesDetails.SelectedItem as Stock;
DataGridSalesSuggestion.Items.Clear();
for (int i = 0; i < AllStockList.Count; i++)
{
if (!string.IsNullOrEmpty(obj.BarCode))
{
if (AllStockList[i].BarCode.StartsWith(obj.BarCode, StringComparison.InvariantCultureIgnoreCase))
{
Stock vend = AllStockList[i] as Stock;
DataGridSalesSuggestion.Items.Add(vend);
DataGridSalesSuggestion.Visibility = Visibility.Visible;
}
}
}
if (DataGridSalesSuggestion.Items.Count > 0)
{
DataGridSalesSuggestion.Visibility = Visibility.Visible;
}
if (string.IsNullOrEmpty(obj.BarCode))
{
DataGridSalesSuggestion.Visibility = Visibility.Collapsed;
}
}
Ожидаемый результат: эта таблица данных должна отображать содержимое, относящееся к тому, что я печатаю в текстовом поле со штрих-кодом.
Фактический результат - при получении этого кода отображается пустая таблица данных. даже заголовок не отображается. Кто-нибудь может помочь? Я новичок в .net