public async void ShowDlg() { Lv lv = _owner.Lv; if (lv.Data != null && !_owner.RefreshData) { // 已设置数据源 } else if (await _owner.OnLoadData()) { // 外部自定义数据源 } else if (!string.IsNullOrEmpty(_owner.Option)) { // 基础选项 lv.Data = AtModel.Query($"select name from OmOption where Category=\"{_owner.Option}\""); } else if (!string.IsNullOrEmpty(_owner.Sql)) { // Sql查询数据 lv.Data = await GetDataBySql(_owner.Sql); } else if (!string.IsNullOrEmpty(_owner.SqlKey)) { // Sql键值查询 lv.Data = await GetDataByKey(_owner.SqlKey, _owner.SqlKeyFilter); } else if (!string.IsNullOrEmpty(_owner.Enum)) { // 枚举数据 Type type = Type.GetType(_owner.Enum, true, true); lv.Data = CreateEnumData(type); } else if (((Type)_owner.ValBinding.ConverterParameter).IsEnum) { // 枚举类型 lv.Data = CreateEnumData((Type)_owner.ValBinding.ConverterParameter); } else if (_owner.Items.Count > 0) { // xaml中定义的对象列表 lv.Data = _owner.Items; } if (lv.View == null) { lv.ShowItemBorder = false; lv.View = (lv.Data is Table) ? Application.Current.Resources["CListRowView"] : Application.Current.Resources["CListObjView"]; } // 不向下层对话框传递Press事件 AllowRelayPress = false; // phone模式先最大化 if (Kit.IsPhoneUI) { ClearValue(HideTitleBarProperty); ClearValue(PhonePlacementProperty); ClearValue(HeightProperty); } Show(); // phone模式选项内容不足半屏时在下部显示 if (Kit.IsPhoneUI && DesiredSize.Height * 2 < SysVisual.ViewHeight) { //HideTitleBar = true; Top = SysVisual.ViewHeight - DesiredSize.Height; // uno中不可设置为固定高度! Height = double.NaN; } }