/// <summary> /// Raises the <see cref="VectorChanged"/> event. /// </summary> public virtual void RaiseVectorChanged(IVectorChangedEventArgs e) { if (_updating <= 0) { VectorChanged?.Invoke(this, e); OnPropertyChanged("Count"); } }
public new object this[int index] { get { Debug.WriteLine("ObservableVector.Index {0}", index); T value; if (!_cache.TryGetValue(_previousIndex = index, out value)) { Task.Run((Func <Task>)(async() => { Debug.WriteLine("ObservableVector.StartLoadAsync {0}", index); if (_chunks.Contains(index)) { _chunks.Push(index); } if (Busy) { return; } try { var i = (_chunks.Any()) ? _chunks.Pop() : index; if (Math.Abs(i - _previousIndex) >= _cacheLimit) { return; } Busy = true; var items = await Provider.LoadAsync((uint)i, _takeSize); foreach (var item in items) { if (_cache.ContainsKey(item.Key)) { _cache[item.Key] = item.Value; } else { _cache.Add(item.Key, item.Value); } base.Add((T)item.Value); var current = (uint)IndexOf(item.Value); VectorChanged?.Invoke(this, new VectorChangedEventArgs { CollectionChange = CollectionChange.ItemInserted, Index = current }); } } catch { Debugger.Break(); } finally { Busy = false; } })); } return(value); } set { throw new NotImplementedException(); } }
/// <summary> /// Vector changed event /// </summary> /// <param name="e">event args</param> protected virtual void OnVectorChanged(IVectorChangedEventArgs e) { if (_deferCounter > 0) { return; } VectorChanged?.Invoke(this, e); // ReSharper disable once ExplicitCallerInfoArgument OnPropertyChanged(nameof(Count)); }
void RaiseChanged(bool count, bool items, CollectionChange change, uint index) { if (count) { this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Count))); } if (items) { this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Items))); } VectorChanged?.Invoke(this, new VectorChangedEventArgs { CollectionChange = change, Index = index }); }
private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e) { switch ((sender as Slider).Name) { case "X": Vector.X = e.NewValue; break; case "Y": Vector.Y = e.NewValue; break; case "Z": Vector.Z = e.NewValue; break; default: throw new Exception($"Invalid Slider Name: {(sender as Slider).Name}"); } Label.Content = (Name != null ? $"{Name}: " : "") + $"X={SliderX.Value}, Y={SliderY.Value}, Z={SliderZ.Value}"; VectorChanged?.Invoke(this, Vector); }
private void DoCollectionChanged(CollectionChangedEventArgs e) { revision++; VectorChanged?.Invoke(this, e); }
private void OnSourceCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { VectorChanged?.Invoke(this as IObservableVector <object>, e.ToVectorChangedEventArgs()); }
private void RaiseVectorChanged(CollectionChange change, int index) { VectorChanged?.Invoke(this, new VectorChangedEventArgs(change, (uint)index)); UntypedVectorChanged?.Invoke(this, new VectorChangedEventArgs(change, (uint)index)); }
private void userList_VectorChanged(IBindableObservableVector vector, object e) { VectorChanged?.Invoke(this, e); OnPropertyChanged(nameof(Count)); }
protected void OnVectorChanged(ChangedArgs e) => VectorChanged?.Invoke(this, e);
private void OnVectorChanged() { VectorChanged?.Invoke(null, null); }
private void OnVectorChanged(IObservableVector <T> sender, IVectorChangedEventArgs @event) { VectorChanged?.Invoke(this, @event); }
public void RaiseVectorChanged(IVectorChangedEventArgs args) { VectorChanged?.Invoke(this, args); }