using System; using System.Collections.Generic; namespace Shared.Phone.UserCenter { /// /// 房间选择画面, /// 它从[DeviceInfoForm,AddedDeviceInfoForm]画面打开 /// public class SelectRoomForm : EditorCommonForm { /// /// 房间选择确定后的回调函数(房间名) /// public Action> ActionSelectRoom = null; /// /// 列表控件 /// private VerticalScrolViewLayout listView = null; /// /// 设备原来的房间 /// private List listRoomName = new List(); /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// /// 已经选了的房间名字 public void ShowForm(List i_listRoomName) { this.listRoomName = i_listRoomName; //设置标题信息 base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uSelectRoom)); //完成 //var btnfinish = new TopLayoutFinshView(); //topFrameLayout.AddChidren(btnfinish); //btnfinish.MouseUpEventHandler += (sender, e) => //{ // List listName = this.GetRoomNameFromRow(); // ActionSelectRoom?.Invoke(listName); // ActionSelectRoom = null; // this.CloseForm(); //}; listView = new VerticalScrolViewLayout(); listView.Height = bodyFrameLayout.Height; bodyFrameLayout.AddChidren(listView); //添加房间行 this.AddAllRoomRow(); } /// /// 添加所有房间行 /// private void AddAllRoomRow() { HdlThreadLogic.Current.RunThread(() => { foreach (Common.Room room in Common.Room.Lists) { if (room.IsSharedRoom == true && this.listRoomName.Contains(room.Name) == false) { //分享的房间不能显示,如果该设备本来就属于分享的房间,则可以显示,但不能取消 continue; } Application.RunOnMainThread(() => { this.AddRoomRow(room); }); } }); } /// /// 添加房间行 /// /// Room. private void AddRoomRow(Common.Room room) { //var row = new RoomSelectRow(listView, room); ////设置选择状态 //if (this.listRoomName.Contains(room.Name) == true) //{ // if (room.IsSharedRoom == true) // { // //分享的房间不允许取消 // row.SelectCancel = false; // } // row.IsSelected = true; //} } /// /// 获取选中的房间 /// /// private List GetRoomNameFromRow() { List listName = new List(); for (int i = 0; ; i++) { //var row = (RoomSelectRow)this.listView.GetChildren(i); //if (row == null) //{ // break; //} //if (row.IsSelected == true) //{ // listName.Add(row.RoomName); //} } return listName; } } }