如何从AutoCompleteBox中的数据库多列获取搜索结果

时间:2018-07-07 16:49:44

标签: c# wpf

我已将AutoCompleteBox与自定义绑定名称代码一起使用。我想从项目的名称代码中进行搜索。在我的代码中,我使用SearchTextBox.ValueMemberPath = "Name"; Name 对象成员中进行搜索。它仅显示名称的搜索结果,但我也想从代码进行搜索。您建议使用任何方法从上述两个对象成员中搜索结果吗? 注意:如果我不使用SearchTextBox.ValueMemberPath = "Name";这段代码,则找不到任何搜索结果。  

            <controls:AutoCompleteBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding Code}"/>
                        <TextBlock Text="{Binding Name}"/>
                    </StackPanel>
                </DataTemplate>
            </controls:AutoCompleteBox.ItemTemplate>
        </controls:AutoCompleteBox>

并获取数据库值,并将其放入AutoCompleteBox中,

 public partial class SaleTab : UserControl
    {
        List<Item> tableList = new List<Item>();

        public SaleTab()
        {
            InitializeComponent();

            SearchTextBox.ItemsSource = PrepareItemList();
            SearchTextBox.ValueMemberPath = "Name";
        }

        List<Item> PrepareItemList()
        {
            Database database = new Database();
            SQLiteDataReader sQLiteDataReader = database.SelectAllOrderBy(Database.TABLE_ITEMS, Database.ID_ITEMS, "DESC");
            try
            {
                tableList.Clear();

                while (sQLiteDataReader.Read())
                {
                    string code = sQLiteDataReader.GetString(1);
                    string itemName = sQLiteDataReader.GetString(2);

                    tableList.Add(new Item()
                    {
                        Code = code,
                        Name = itemName,

                    });
                }
                sQLiteDataReader.Close();
                database.DBClose();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                if (sQLiteDataReader != null)
                {
                    sQLiteDataReader.Close();
                }
            }
            return tableList;
        }
    }

0 个答案:

没有答案