private void typeFactory_HttpSucess(object sender, HttpFactoryArgs <List <TypeInfo> > args) { var selectGroup = new ChannelTypeGroup(); selectGroup.GroupName = "已固定"; selectGroup.ItemsGroup = new ObservableCollection <ChannelTypeItem>(); var unSelectGroup = new ChannelTypeGroup(); unSelectGroup.GroupName = "未固定"; unSelectGroup.ItemsGroup = new ObservableCollection <ChannelTypeItem>(); _allViewModel.Groups.Add(selectGroup); _allViewModel.Groups.Add(unSelectGroup); var roamingValue = DataStoreUtils.GetRoamingSettingValue(_channelTypeSettingKey) as string; if (string.IsNullOrEmpty(roamingValue)) { roamingValue = string.Join("/", args.Result.Take(ColNumber * 2).Select(v => v.TypeId.ToString())); } var firstLaunch = DataStoreUtils.GetLocalSettingValue(_channelTypeSettingKey) as string; if (string.IsNullOrEmpty(firstLaunch)) { if (!roamingValue.Contains("75099")) { roamingValue = roamingValue.Insert(0, "75099/"); roamingValue = roamingValue.Remove(roamingValue.LastIndexOf('/')); } if (!roamingValue.Contains(LiveTypeId.ToString())) { roamingValue = roamingValue.Insert(0, string.Format("{0}/", LiveTypeId.ToString())); roamingValue = roamingValue.Remove(roamingValue.LastIndexOf('/')); } DataStoreUtils.AddLocalSettingValue(_channelTypeSettingKey, "1"); DataStoreUtils.AddRoamingSettingValue(_channelTypeSettingKey, roamingValue); } _isReorder = false; var selectValues = roamingValue.Split('/'); foreach (var type in args.Result) { ProcessViewModel(selectValues, type.TypeId, type.Name); } foreach (var type in _localTypes) { ProcessViewModel(selectValues, type.TypeId, type.TypeName); } foreach (var selected in selectValues) { var item = _allViewModel.Groups[0].ItemsGroup.FirstOrDefault(v => v.TypeId == Convert.ToInt32(selected)); if (item != null) { _selectedViewModel.Add(item); } } }
private void SaveRoaming() { var roamingValue = string.Join("/", _selectedViewModel.Select(v => v.TypeId.ToString())); DataStoreUtils.AddRoamingSettingValue(_channelTypeSettingKey, roamingValue); }