在做项目过程中,需要扫码枪扫描快递单号或者手动输入快递单号时,自动检索该单号是哪个快递公司的,下拉框中自动带出该单号的快递公司。当输入的快递单号不存在时,将数据库中所有快递公司都带出
效果:
通过输入的快递单号检索快递公司
1、物流单号文本框需要添加KeyDown回车事件
<TextBox Grid.Row="9" Grid.Column="1" x:Name="txtRemark" Width="250"
KeyDown="txtRemark_KeyDown" InputMethod.IsInputMethodEnabled="False"></TextBox>
2、下拉框不能绑定binding,直接使用一个combox下拉框就可以了,将name等一些基本属性设置好就行
<ComboBox Name="cmbLineName" Width="250" SelectedValuePath="ItemValue" DisplayMemberPath="ItemValue" />
3、cs层物流单号的回车事件代码:
private void txtRemark_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key==Key.Enter)
{
var LineNo = this.txtRemark.Text;
List<WordbookItemVO> result = new List<WordbookItemVO>();
//调用服务查询数据库中配置的快递公司,首次使用的快递公司需要通过手持终端的API接口新增致数据库的表保存
ServicesInvokeHelper.Invoke<IInStoreOrderService>((proxy) =>
{
result = proxy.QueryExpress(LineNo);
});
ItemCollection coll = cmbLineName.Items;
coll.Clear();
cmbLineName.Text = null;
if (result!=null)
{
//循环遍历查询到的物流公司,将公司名放进ComboBoxItem中
foreach (var item in result)
{
ComboBoxItem boxItem = new ComboBoxItem() { Content = item };
coll.Add(item);
//cmbLineName.Items.Add(item);
}
}
else
{
MessageBox.Show("当前快递单号没有对应快递公司,请用RF收件");
}
}
}