public ListItemControl() { this.InitializeComponent(); this.WhenActivated(disposables => { this.WhenAnyValue(v => v.ViewModel) .BindTo(this, v => v.DataContext) .DisposeWith(disposables); this.OneWayBind(this.ViewModel, vm => vm.Item.DisplayNumber, v => v.NumberTextBlock.Text) .DisposeWith(disposables); this.OneWayBind(this.ViewModel, vm => vm.Item.Title, v => v.TitleTextBlock.Text) .DisposeWith(disposables); this.OneWayBind(this.ViewModel, vm => vm.Item.OriginalTitle, v => v.OriginalTitleTextBlock.Text) .DisposeWith(disposables); this.OneWayBind(this.ViewModel, vm => vm.Item.Year, v => v.YearTextBlock.Text) .DisposeWith(disposables); var isMouseOver = this.GetObservable(PointerEnterEvent).Select(_ => true) .Merge(this.GetObservable(PointerLeaveEvent).Select(_ => false)) .DistinctUntilChanged() .StartWith(false); this.WhenAnyValue( v => v.ViewModel !.Item.HighlightMode, v => v.ViewModel !.Item.IsSelected, (highlightMode, selected) => (Mode: highlightMode, Selected: selected)) .CombineLatest(isMouseOver, (item, mouseOver) => (item.Mode, Show: !item.Selected && !mouseOver)) .Select(item => item.Show ? this.GetColorForHighlightMode(item.Mode) : Brushes.Transparent) .ObserveOn(RxApp.MainThreadScheduler) .BindTo(this, v => v.Background) .DisposeWith(disposables); this.OneWayBind( this.ViewModel, vm => vm.Color, v => v.Foreground, color => Color.TryParse(color, out var result) ? result.ToBrush() : Brushes.Black) .DisposeWith(disposables); }); }
public _(CombineLatest <T1, T2, T3, TResult> parent, IObserver <TResult> observer) : base(3, observer) { _parent = parent; }
public CombineLatestObserver(CombineLatest parent, int index) { this.parent = parent; this.index = index; }
public RightObserver(CombineLatest parent) { this.parent = parent; }