Esempio n. 1
0
        public MainWindow()
        {
            InitializeComponent();

            DataContext = this;

            Total =
                Items
                .ObserveItem(item => item.IsChecked)
                .Merge()
                .Select(isChecked => isChecked ? 1 : 0)
                .Scan(0, (x, y) => x + y, (x, y) => x - y)
                .ToReactiveProperty(0);

            Items
            .ObserveElementObservableProperty(item => item.RemoveCommand)
            .Subscribe(pair =>
            {
                Items.Remove(pair.Instance);
            });

            AddCommand.StartWith(new object[] { null, null, null }).Subscribe(_ =>
            {
                Items.Add(new Item());
            });
        }