我已将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;
}
}