在平时做项目中,简单快捷的操作小功能是必不可少的,既能简化代码量,又能方便快捷的上手操作。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPR1ENRRUTwUFROBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL2kTMzQzNyYTM2EjNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
比如说:某酒店系统的客人登记页面,你不可能说每来一个客户都需要一个框一个框的填写好,然后再订房再保存,一般项目需求会写到:1. 根据已订房客人资料进行快速登记;2. 按客人姓名系统可自动查出是否是黑名单客人。这是最基本的两个小要点。
代码实现:View层(鼠标移开事件)
<TextBlock Grid.Row="1" Grid.Column="1" Text="主客姓名:" Foreground="Crimson" VerticalAlignment="Center"/>
<TextBox Grid.Row="1" Grid.Column="2" Height="23" Text="{Binding CurrentRoomTableEntity.guestName,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEnabled="False" BorderBrush="Crimson" >
<!--MouseLeave事件-->
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeave">
<i:InvokeCommandAction Command="{Binding TxtGuestMouseLeaveCommand}" CommandParameter="{Binding ElementName=WGuest}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
页面上用的是鼠标移开事件,输入完后立马执行。
ViewModel层:
//客人姓名查询操作
public void TxtGuestMouseLeave(Window window)
{
try
{
name = CurrentRoomTableEntity.guestName.Trim();
//判断客人姓名长度
if (CurrentRoomTableEntity.guestName != null)
{
var guestDetail = (from tbGuest in myModels.t_guest
where tbGuest.g_name == name
select new RoomVo
{
//客人基本信息
agreement_id = tbGuest.agreement_id,
g_number = tbGuest.g_number,
g_name = tbGuest.g_name,
gender = tbGuest.gender,
g_phone = tbGuest.g_phone,
zjType = tbGuest.zjType,
g_zjNumber = tbGuest.g_zjNumber,
g_address = tbGuest.g_address,
blackOrNo = tbGuest.blackOrNo,
g_type = tbGuest.g_type,
g_note = tbGuest.g_note
}).ToList();
dataTable = ListToDataTable.ListToDataTablen(guestDetail);
if (dataTable.Rows[0]["blackOrNo"].ToString() != "True")
{
RoomVo guestEntity = new RoomVo()
{
agreement_id = Convert.ToInt32(dataTable.Rows[0]["agreement_id"]),
g_number = dataTable.Rows[0]["g_number"].ToString(),
guestName = dataTable.Rows[0]["g_name"].ToString(),
g_phone = dataTable.Rows[0]["g_phone"].ToString(),
gender = dataTable.Rows[0]["gender"].ToString(),
zjType = dataTable.Rows[0]["zjType"].ToString(),
g_zjNumber = dataTable.Rows[0]["g_zjNumber"].ToString(),
g_address = dataTable.Rows[0]["g_address"].ToString(),
g_type = dataTable.Rows[0]["g_type"].ToString(),
g_note = dataTable.Rows[0]["g_note"].ToString(),
blackOrNo = Convert.ToBoolean(dataTable.Rows[0]["blackOrNo"].ToString()),
};
CurrentRoomTableEntity = guestEntity;
}
else
{
MessageBoxResult mr = MessageBox.Show("该客户是黑名单客人", "系统提示!", MessageBoxButton.OKCancel, MessageBoxImage.Stop);
if (mr == MessageBoxResult.OK)
Close(window);
}
}
}
catch (Exception e)
{
//输出
Debug.WriteLine(e);
}
}
输入完主客姓名移开后,自动绑定该客户的相关信息,如果是黑名单客户,系统提示并关闭当前页面。