public DataGrid() { InitializeComponent(); _sortingOrders = new Dictionary <int, SortingOrder>(); _listView.ItemSelected += (s, e) => { if (SelectionEnabled) { SelectedItem = _listView.SelectedItem; } else { _listView.SelectedItem = null; } ItemSelected?.Invoke(this, e); }; _listView.Refreshing += (s, e) => { Refreshing?.Invoke(this, e); }; }
public static void ForcedRefresh <T>(Refreshing <T, int> refreshing) where T : IEquatable <T> { var initialCount = refreshing.RefreshCount; refreshing.Refresh(); Assert.That(refreshing, Has.Property(nameof(refreshing.RefreshCount)).EqualTo(initialCount + 1)); }
public DataGrid(ListViewCachingStrategy cachingStrategy) { InitializeComponent(); _sortingOrders = new Dictionary <int, SortingOrder>(); _listView = new ListView(cachingStrategy) { BackgroundColor = Color.Transparent, ItemTemplate = new DataGridRowTemplateSelector(), SeparatorVisibility = SeparatorVisibility.None, }; _listView.ItemSelected += (s, e) => { if (SelectionEnabled) { SelectedItem = _listView.SelectedItem; } else { _listView.SelectedItem = null; } ItemSelected?.Invoke(this, e); }; _listView.Refreshing += (s, e) => { Refreshing?.Invoke(this, e); }; _listView.SetBinding(ListView.RowHeightProperty, new Binding("RowHeight", source: this)); Grid.SetRow(_listView, 1); Children.Add(_listView); }
public void Refresh() { App.Current.Dispatcher.Invoke(() => { Refreshing?.Invoke(this, new EventArgs()); }); }
public void MultipleSecondsButOnlyOneInvocation() { var invoker = new CountedFunc <string>(() => "swag: " + DateTime.Now); var perSecond = new Refreshing <string, DateTime>( invoker.Invoke, () => DateTime.Now, (prev, cur) => cur - prev >= TimeSpan.FromSeconds(1) ); Assert.That(perSecond, Has.Property(nameof(perSecond.Freshness)).EqualTo(Freshness.Stale)); Assert.That(invoker, Has.Property(nameof(invoker.InvocationCount)).EqualTo(0)); }
void BeginRefreshing(bool isPulledRefresh) { var currentIconGeometryY = _refreshIcon.Geometry.Y; var contentDistanceDiff = _maximumDistance - currentIconGeometryY; var _refreshIconBeginAnimation = new Animation(v => _refreshIcon.Move(_refreshIcon.Geometry.X, currentIconGeometryY + (int)v), 0, contentDistanceDiff, Easing.Linear); _refreshIconBeginAnimation.Commit(this, "RefreshIconBegin", length: _animationLength); _refreshState = RefreshState.Loading; _isRefreshing = true; _refreshIcon.IsRunning = true; Refreshing?.Invoke(this, EventArgs.Empty); }
public void Teest() { ConnectionReader connectionNoW = new ConnectionReader(); connectionNoW.Start(); ConnectionNoW connectionNoW2 = new ConnectionNoW(); connectionNoW2.Start(); NumberWorkers numberWorkers = new NumberWorkers(); numberWorkers.Number(); ValuesFromInterval valuesFromInterval = new ValuesFromInterval(); Refreshing refreshing = new Refreshing(); LastValue lastValue = new LastValue(); }
public static void Do(IHomeContentGetter getter = null) { lock (_lock) { getter = getter ?? new RemoteXamlReader(); //开始刷新 Refreshing?.Invoke(null, new HomeContentRefreshingEventArgs()); //下载远端数据 if (!getter.TryGet(out object result)) { App.Current.Dispatcher.Invoke(() => { result = getter.Default(); }); } //刷新完成 Refreshed?.Invoke(null, new HomeContentRefreshedEventArgs(result)); } }
public void PristineUntilFirstRetrieval() { const string str = "yolo"; var invoker = new CountedFunc <string>(() => str); var refreshing = new Refreshing <string, long>( invoker.Invoke, () => DateTime.Now.Ticks, (prev, cur) => cur - prev >= TimeSpan.TicksPerSecond ); Assert.That(invoker, Has.Property(nameof(invoker.InvocationCount)).EqualTo(0)); Assert.That(refreshing, Has.Property(nameof(refreshing.Freshness)).EqualTo(Freshness.Stale)); 10.Repeat( () => { Assert.That(refreshing.Value, Is.EqualTo(str)); Assert.That(invoker, Has.Property(nameof(invoker.InvocationCount)).EqualTo(1)); Assert.That(refreshing, Has.Property(nameof(refreshing.Freshness)).EqualTo(Freshness.Fresh)); } ); }
public void EverySecond() { var timeKeeper = new CountedFunc <DateTime>(() => DateTime.Now); var perSecond = new Refreshing <DateTime, DateTime>( () => timeKeeper.Invoke(), () => DateTime.Now, (prev, current) => current >= (prev + TimeSpan.FromSeconds(1)) ); Assert.That(timeKeeper.InvocationCount, Is.EqualTo(0)); Assert.That(perSecond.Freshness, Is.EqualTo(Freshness.Stale)); Console.WriteLine(perSecond.Value); Assert.That(perSecond.Freshness, Is.EqualTo(Freshness.Fresh)); Assert.That(timeKeeper.InvocationCount, Is.EqualTo(1)); int hertz = 10; int seconds = 5; for (int s = 0; s < seconds; s++) { for (int i = 0; i < hertz; i++) { Thread.Sleep(TimeSpan.FromSeconds(1f / hertz)); var v = perSecond.Value; v = perSecond.Value; v = perSecond.Value; v = perSecond.Value; v = perSecond.Value; Assert.That(perSecond.Freshness, Is.EqualTo(Freshness.Fresh)); } Console.WriteLine(perSecond.Value); Assert.That(timeKeeper.InvocationCount, Is.EqualTo(s + 2)); } }
private void LvListView_Refreshing(object sender, EventArgs e) { Refreshing?.Invoke(this, e); }
void OnRefreshing(EventArgs e) => Refreshing?.Invoke(this, e);
private void RaiseRefreshing() { IsRefreshing = true; Refreshing?.Invoke(this, EventArgs.Empty); }
internal static void OnRefreshing() { Refreshing?.Invoke(null, EventArgs.Empty); }