Количество элементов ObservableCollection в XAML - PullRequest
0 голосов

Как связать количество элементов ObservableCollection в Я использую ObservableCollection для выбора элементов в корзину.

    public ObservableCollection<ItemInCart> ItemsInCart
    {
        get { return _itemsInCart; }
        set { Set(ref _itemsInCart, value); }
    }
...
XAML:
cm:Message.Attach="[Event ItemClick] = [OnSellingItemSelected($clickedItem)]"

В конце концов, я беру эту коллекцию и с помощью навигации отправляю ее на следующую страницу. Пытаясь показать сумму сбора в TextBlock, я столкнулся с проблемой обновления данных.

    public string ItemsInCartCount
    {
        get { return _itemsInCart.Count().ToString(); }
    }
...
XAML:
<TextBlock Text="{x:Bind ViewModel.ItemsInCartCount, Mode=OneWay}"

При получении новых элементов в ItemsInCart сумма в текстовом поле не меняется. Как правильно привязать?

1 Ответ

0 голосов
/ 17 июня 2020

При получении новых элементов в ItemsInCart сумма в текстовом поле не меняется. Как правильно выполнить привязку?

ObservableCollection содержит CollectionChanged, если мы добавим новый элемент в ObservableCollection, это событие будет запущено. тогда вы можете перезагрузить ItemsInCartCount.

private void Items_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
   ItemsInCartCount =  e.NewItems.Count.ToString();
}

Обратите внимание: ItemsInCartCount уведомит об изменении значения, поэтому нам нужно реализовать onproperty change.

private string _itemsInCartCount;
public string ItemsInCartCount
{
    get { return _itemsInCartCount; }
    set { Set(ref _itemsInCartCount, value); }
}
...