【发布时间】:2020-03-06 20:58:30
【问题描述】:
我有一个使用 Caliburn.Micro 的测试 WPF 应用程序。我正在尝试使用可以输入的 ComboBox 进行构建。相关的 DataGrid 信息将在输入文本时更新/过滤。
我遇到的问题是当我的 ExecuteSearch 事件被触发时。它在编辑文本之前传递信息。我想知道如何在按下键后将文本信息传递给函数。
任何帮助将不胜感激。相关代码如下:
查看:
<TextBlock Text="Search: " />
<ComboBox x:Name="SearchOptions"
IsEditable="True"
DisplayMemberPath="Search"
cal:Message.Attach="[Event KeyDown] = [Action ExecuteSearch($source)]"
MinWidth="200">
</ComboBox>
视图模型:
public void ExecuteSearch(object searchText)
{
ComboBox searchbox = (ComboBox)searchInfo;
if (searchbox.Text != null && searchbox.Text != "")
{
string sql = "SELECT * FROM SearchItems WHERE PartNumber LIKE " + searchbox.Text +"";
SearchItems = SqliteConnector.LoadData<SearchItemsModel>(sql, new Dictionary<string, object>());
}
else
{
string sql = "SELECT * FROM SearchItems";
SearchItems = SqliteConnector.LoadData<SearchItemsModel>(sql, new Dictionary<string, object>());
}
}
当事件被触发时searchbox.Text == "" 即使输入了“0”。
任何帮助将不胜感激。
【问题讨论】:
标签: c# wpf combobox action caliburn.micro