首先简单介绍下需要完成的功能点:
- 订房
选择左表中需要订的房间,然后点击添加按钮,把数据传给右表 如图1所示
(图1)
订房效果图:
- 退房
选择需要退订的房间(右表中的数据) 然后点击移去按钮,就可以达到退房的效果了。
退房效果图:
实现代码如下:
//构造函数内
AddCommand = new RelayCommand(DingFang);
RemoveCommand = new RelayCommand(TuiFang);
//属性内
private static bool A = true;//true添加(标记)记录是否是第一次新增
ObservableCollection<RoomVo> Rooms = new ObservableCollection<RoomVo>();
//列表数据:不要用List要用ObservableCollection达到数据实时更新效果
private ObservableCollection<RoomVo> _dgRoomDetails = new ObservableCollection<RoomVo>();
public ObservableCollection<RoomVo> dgRoomDetails
{
get { return _dgRoomDetails; }
set
{
if (_dgRoomDetails != value)
{
_dgRoomDetails = value;
RaisePropertyChanged(() => dgRoomDetails);
}
}
}
//可选表实体
private t_guestRoom _SelectRTableEntity;
public t_guestRoom SelectRTableEntity
{
get { return _SelectRTableEntity; }
set
{
if (_SelectRTableEntity != value)
{
_SelectRTableEntity = value;
RaisePropertyChanged(() => SelectRTableEntity);
}
}
}
//已选表实体
private t_guestRoom _SelectRoomTableEntity;
public t_guestRoom SelectRoomTableEntity
{
get { return _SelectRoomTableEntity; }
set
{
if (_SelectRoomTableEntity != value)
{
_SelectRoomTableEntity = value;
RaisePropertyChanged(() => SelectRoomTableEntity);
}
}
}
//执行函数内
//订房操作
public void DingFang()
{
t_guestRoom roomT = SelectRTableEntity as t_guestRoom;
int guestRId = Convert.ToInt32(roomT.guestRoom_id);
List<RoomVo> dg = (from tbGRoom in myModels.t_guestRoom
where tbGRoom.guestRoom_id == guestRId
select new RoomVo
{
guestRoom_id = tbGRoom.guestRoom_id,
roomNumbr = tbGRoom.roomNumbr,
roomType = tbGRoom.roomType,
roomPrice = tbGRoom.roomPrice
}).ToList();
for (int i = 0; i < dgRoomDetails.Count; i++)
{
//判断数据是否重复(重复不做操作)
RoomVo room = dgRoomDetails[i] as RoomVo;
int r = room.guestRoom_id;
if (r == guestRId)
{
A = false;//重复
dgRoomDetails = Rooms;
}
}
//数据追加
if (A == true)
{
//菜单不重复(添加)
for (int i = 0; i < dg.Count; i++)
{
Rooms.Add(dg[i]);
}
dgRoomDetails = Rooms;
}
A = true;
}
//退房操作
public void TuiFang()
{
RoomVo menu = SelectRoomTableEntity as RoomVo;
Rooms.Remove(Rooms.FirstOrDefault(u => u.guestRoom_id == menu.guestRoom_id));
//刷新表格
dgRoomDetails = Rooms;
int rNum = dgRoomDetails.Count();
roomNum = rNum.ToString() + "间";
}