public void UnSelectAllItems(System.Collections.IList currentListItems)
 {
     // prevent removing default language
     if (currentListItems is IList <StoreLanguageDisplay> )
     {
         InnerItemLanguages.ToList().ForEach(x => UnSelectItem(x));
     }
     else if (currentListItems is IList <StoreCurrency> )
     {
         InnerItem.Currencies.ToList().ForEach(x => UnSelectItem(x));
     }
 }
 public void SelectItem(object selectedObj)
 {
     if (selectedObj is StoreLanguageDisplay)
     {
         var selectedItem = (StoreLanguageDisplay)selectedObj;
         InnerItem.Languages.Add(selectedItem.Language);
         InnerItemLanguages.Add(selectedItem);
     }
     else if (selectedObj is StoreCurrency)
     {
         InnerItem.Currencies.Add(selectedObj as StoreCurrency);
     }
 }
        public void UnSelectItem(object selectedObj)
        {
            StoreLanguageDisplay selectedLanguage;
            StoreCurrency        selectedCurrency;

            // prevent removing default language
            if ((selectedLanguage = selectedObj as StoreLanguageDisplay) != null && selectedLanguage.Language.LanguageCode != InnerItem.DefaultLanguage)
            {
                var item = InnerItem.Languages.First(x => x.LanguageCode == selectedLanguage.Language.LanguageCode);
                InnerItem.Languages.Remove(item);
                InnerItemLanguages.Remove(selectedLanguage);
            }
            else if ((selectedCurrency = selectedObj as StoreCurrency) != null && selectedCurrency.CurrencyCode != InnerItem.DefaultCurrency)
            {
                var item = InnerItem.Currencies.First(x => x.CurrencyCode == selectedCurrency.CurrencyCode);
                InnerItem.Currencies.Remove(item);
            }
        }