1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- using MECF.Framework.UI.Client.CenterViews.Configs.SystemConfig;
- using MECF.Framework.UI.Client.ClientBase;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Windows;
- using System.Windows.Controls;
- namespace MECF.Framework.UI.Client.CenterViews.Dialogs
- {
- public class ItemsSelectDialogViewModel : ModuleUiViewModelBase
- {
- #region properties
- public bool IsRadio { get; set; } = false;//默认支持多选
- public bool IsSpin { get; set; } = false;//Spin module 选择时需要特殊处理
- public int ColumnsCount { get; set; } = 1;
- public ObservableCollection<Option> Items { get; set; } = new ObservableCollection<Option>();
- public int ButtonHeight { get; set; } = 50;
- public int ButtonWidth { get; set; } = 200;
- public int ButtonMargin { get; set; } = 5;
- public bool IsSingleModule { get; set; } = false;
- public string Result
- {
- get
- {
- string strRet = string.Empty;
- foreach (var item in Items.Where(x => x.IsChecked))
- {
- strRet += $",{item.Name}";
- }
- return strRet.Trim(',');
- }
- }
- #endregion
- #region Function
- public void SelectItem(Option option)
- {
- if (IsSpin)
- {
- var obj = Items.FirstOrDefault(x => x.IsChecked);
- if (obj != null)
- {
- string[] firstElement = obj.Name.Split(' ');
- if (option.Name.Split(' ')[0] != firstElement[0])
- return;
- //resist和rrc 同时只能选择一个
- if(firstElement.Length>1 && obj!=option)
- {
- string[] conflictModuleName = { "resist","rrc" };
- if(firstElement[1].ToLower().Contains("resist")||firstElement[1].ToLower().Contains("rrc"))
- {
- if (option.Name.ToLower().Contains("resist") || option.Name.ToLower().Contains("rrc"))
- return;
- }
- }
- }
- }
- option.IsChecked = !option.IsChecked;
- if (IsRadio)
- {
- foreach (var item in Items.Where(x => x != option))
- {
- item.IsChecked = false;
- }
- }
- try
- {
- if (IsSingleModule)
- {
- foreach (var item in Items.Where(x => x.Name.Split(' ')[0] != option.Name.Split(' ')[0]))
- {
- item.IsChecked = false;
- }
- }
- }
- catch (System.Exception)
- {
- }
- }
- public void OK()
- {
- (this.GetView() as Window).DialogResult = true;
- }
- public void Cancel()
- {
- (this.GetView() as Window).DialogResult = false;
- }
- #endregion
- }
- }
|