public static bool TryFromSetting(IColumnSetting option, IAccount account, out ColumnBase column) { column = option switch { HomeColumnSetting homeColumn => new HomeColumn(account, homeColumn), NotificationColumnSetting notificationColumn => new NotificationColumn(account, notificationColumn), _ => default,
protected override void SetOption(IColumnSetting option) { throw new NotImplementedException(); //base.SetOption(option); //this._searchType = option.GetValue<string>("search_type"); //this._useLanguage = option.GetValue<bool>("use_language"); //this.Language = option.GetValue<string>("language"); //this._clearItemsAfterSearch = option.GetValue<bool>("clear_items"); }
/// <summary> /// アカウント追加時 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OnAccountRegistered(object sender, IAccount e) { var defaultColumns = new IColumnSetting[] { new HomeColumnSetting(e.ItemId), new NotificationColumnSetting(e.ItemId), }; var newColumns = new List <ColumnBase>(defaultColumns.Length); foreach (var columnOptions in defaultColumns) { if (ColumnBase.TryFromSetting(columnOptions, e, out var column)) { newColumns.Add(column); } } this.AddRange(newColumns); }
/// <summary> /// 添加Column /// </summary> /// <param name="fieldName"></param> /// <param name="header"></param> /// <param name="type"></param> /// <param name="setting"></param> /// <param name="width"></param> /// <returns></returns> public static GridColumnVm Create(string fieldName, string header, GridColumnType type, IColumnSetting setting, object width) { var result = new GridColumnVm(fieldName, header) { Width = width, GridColumnType = type }; if (setting == null) { } result.ColumnSetting = setting; return(result); }