public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            this._inflater = inflater;
            View view = inflater.Inflate(Resource.Layout.ic_tab_shopping_list, null);

            ViewModel = new ShoppingListViewModel(ServiceRegistrar.ShoppingService(MainActivity.SqliteConnection));

            _shoppingListView = view.FindViewById <ListView>(Resource.Id.ShoppingListView);

            var newItemEditText = view.FindViewById <EditText>(Resource.Id.NewItemEditText);

            Button addItemButton = view.FindViewById <Button>(Resource.Id.AddButton);

            _shoppingListView.Adapter = ViewModel.Items.GetAdapter(GetItemView);

            addItemButton.Click += delegate
            {
                var title = newItemEditText.Text;

                if (!string.IsNullOrEmpty(title))
                {
                    ViewModel.Add(new Item(title));
                }

                newItemEditText.Text = "";
            };

            _shoppingListView.ItemClick += delegate(object sender, AdapterView.ItemClickEventArgs e)
            {
                ViewModel.Remove(this.ViewModel.Items.ElementAt(e.Position));
            };

            return(view);
        }
        // deleting from the list: https://developer.xamarin.com/guides/ios/user_interface/tables/part_4_-_editing/#Swipe_to_Delete
        public override void CommitEditingStyle(UITableView tableView, UITableViewCellEditingStyle editingStyle, NSIndexPath indexPath)
        {
            switch (editingStyle)
            {
            case UITableViewCellEditingStyle.Delete:
                _viewModel.Remove(_viewModel.Items.ElementAt(indexPath.Row));
                tableView.DeleteRows(new NSIndexPath[] { indexPath }, UITableViewRowAnimation.Fade);
                break;

            case UITableViewCellEditingStyle.None:
                break;
            }
        }
Beispiel #3
0
        void Should_Be_Able_To_Remove_Item()
        {
            // Arrange
            var shoppingService = new ShoppingService(_sqliteConnection);
            var vm   = new ShoppingListViewModel(shoppingService);
            var item = new Item("some bought item");

            vm.Add(item);

            // Act
            vm.Remove(item);

            // Assert
            Assert.DoesNotContain <Item>(vm.Items, x => x == item);
            Assert.DoesNotContain <Item>(shoppingService.Items, x => x == item);
        }
Beispiel #4
0
        void Should_Be_Able_To_Remove_Item()
        {
            // Arrange
            var vm   = new ShoppingListViewModel(_shoppingService);
            var item = new Item("some item to remove");

            vm.Add(item);

            // Act
            vm.Remove(item);

            // Assert
            Assert.DoesNotContain <Item>(vm.Items, x => x == item);
            Assert.DoesNotContain <Item>(_shoppingService.Items, x => x == item);
            Assert.DoesNotContain <Item>(_shoppingService.BoughtItems, x => x == item);
        }
Beispiel #5
0
 public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
 {
     ViewModel.Remove(ViewModel.Items.ElementAt(indexPath.Row));
     tableView.ReloadData();
 }