在平時做項目中,簡單快捷的操作小功能是必不可少的,既能簡化代碼量,又能友善快捷的上手操作。
![](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);
}
}
輸入完主客姓名移開後,自動綁定該客戶的相關資訊,如果是黑名單客戶,系統提示并關閉目前頁面。