I am trying to create a ListBox view for show data, and I want it to contain a ListBox with a datatemplate for 2 columns "Product ID & Product Barcode"
What I have made until now is: In XAML :
XAML:
<TextBox HorizontalAlignment="Right" VerticalAlignment="Bottom" Height="25" Width="300" Margin="0,0,44,0" x:Name="txtCAuto" TextWrapping="NoWrap" HorizontalContentAlignment="Right" /> <ListBox x:Name="lbSuggestion" SelectionChanged="lbSuggestion_SelectionChanged" Foreground="Black" Width="300" Margin="0,0,44,0" FlowDirection="RightToLeft" Background="LightYellow" Grid.Row="1" Visibility="Collapsed" ScrollViewer.HorizontalScrollBarVisibility="Auto" ItemsSource="{Binding Path=autoList}" HorizontalAlignment="Right" VerticalAlignment="Top" HorizontalContentAlignment="Right" BorderBrush="Transparent" Grid.IsSharedSizeScope="True"> </ListBox>
Code:
string typedString = txtCAuto.Text.ToUpper(); List<string> autoList = new List<string>(); autoList.Clear(); prodDetails ps = SelProd4Sale(); foreach (string item in ps.ProdBrcdList) { if (!string.IsNullOrEmpty(txtCAuto.Text)) { if (item.StartsWith(typedString)) { FrameworkElementFactory colProdID = new FrameworkElementFactory(typeof(TextBlock)); Binding prodID = new Binding(ps.ProdIDList.ToString()); colProdID.SetBinding(TextBlock.TextProperty, prodID); FrameworkElementFactory colProdBarcode = new FrameworkElementFactory(typeof(TextBlock)); Binding prodBarcode = new Binding(); prodBarcode.Path = new PropertyPath(ps.ProdBrcdList.ToString()); colProdBarcode.SetBinding(TextBlock.TextProperty, prodBarcode); FrameworkElementFactory sb = new FrameworkElementFactory(typeof(StackPanel)); sb.AppendChild(colProdID); sb.AppendChild(colProdBarcode); dTemplate = new DataTemplate { VisualTree = sb }; dTemplate.Seal(); } } } if (autoList.Count > 0) { lbSuggestion.ItemTemplate = dTemplate; lbSuggestion.Visibility = Visibility.Visible; } else if (txtCAuto.Text.Equals("")) { lbSuggestion.Visibility = Visibility.Collapsed; lbSuggestion.ItemsSource = null; } else { lbSuggestion.Visibility = Visibility.Collapsed; lbSuggestion.ItemsSource = null; }
but there is no data appears, any suggestion please. thanks,