private void AddItem() { ELLSequenceItemXML newItem = new ELLSequenceItemXML(); _sequence.Items.Add(newItem); BuildList(newItem); }
/// <summary> Constructor. </summary> /// <param name="owner"> The owner. </param> /// <param name="item"> The item. </param> /// <param name="index"> The index. </param> public ELLSequenceItemViewModel(ISequenceRoot owner, ELLSequenceItemXML item, int index) { _owner = owner; _sequenceItem = item; Index = index; _addressCollection = new CheckableAddressCollection(_owner.DeviceTypes.Keys.OrderBy(ch => ch)); List <char> currentAddresses = new List <char>(); foreach (char address in item.Addresses) { if (_owner.DeviceTypes.ContainsKey(address)) { currentAddresses.Add(address); _addressCollection.Items.First(i => i.Value == address).IsChecked = true; } } if (currentAddresses.Count == 0) { currentAddresses.Add(_owner.DeviceTypes.Keys.First()); _addressCollection.Items.First(i => i.Value == _owner.DeviceTypes.Keys.First()).IsChecked = true; } _sequenceItem.Addresses = currentAddresses; UpdateOptions(); _addressCollection.ItemUpdate += AddressCollection_ItemUpdate; _owner = owner; }
private void InsertItem() { int index = -1; if (SelectedItem != null) { index = _sequence.Items.IndexOf(SelectedItem.Item); } if (index >= 0 && index < _sequence.Items.Count) { ELLSequenceItemXML newItem = new ELLSequenceItemXML(); _sequence.Items.Insert(index, newItem); BuildList(newItem); } else { AddItem(); } }
private void BuildList(ELLSequenceItemXML selected) { if (!_sequence.Items.Any()) { Items = new ObservableCollection <ELLSequenceItemViewModel>(); SelectedItem = null; RaisePropertyChanged(() => ShowParam); return; } int index = 1; if (selected == null) { selected = SelectedItem?.Item; } Items = new ObservableCollection <ELLSequenceItemViewModel>(_sequence.Items.Select(item => new ELLSequenceItemViewModel(this, item, index++))); SelectedItem = (selected == null) ? Items.FirstOrDefault() : Items.FirstOrDefault(item => item.Item == selected); RaisePropertyChanged(() => ShowParam); }
/// <summary> Default constructor. </summary> public ELLSequenceItemViewModel() { _sequenceItem = new ELLSequenceItemXML(); _addressCollection = new CheckableAddressCollection(new List <char>()); _addressCollection.ItemUpdate += AddressCollection_ItemUpdate; }