Проблема привязки. Выбрано количество флажков для метки WPF - PullRequest
1 голос
/ 06 февраля 2020

Я новый WPF и все еще пытаюсь получить gr asp для привязок MVVM.

В основном я пытаюсь связать listofitems.Where (x => x.IsSelected == true) .Count (); на ярлык, где IsSelected представляет флажок флажок. И каждый раз, когда флажок снят, метка также будет обновляться.

IsSelected - свойство класса Item

XML

<Label x:Name="numeratorLbl" Content="{Binding Path=ItemList, Mode=TwoWay}" />

Code Behind

        private bool mIsSelected;
        public bool IsSelected
        {
            get { return mIsSelected;  }
            set
            {
                mIsSelected = value;
                OnPropertyChanged("IsSelected");  
            }
        }
        private void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

public ObservableCollection<Item> listofitems = new ObservableCollection<Item>();



Может кто-нибудь мне помочь?

1 Ответ

0 голосов
/ 07 февраля 2020

Создайте отдельное свойство, которое принимает статус и возвращает правильный текст в зависимости от любой / всех логик c или необходимого выходного текста.

Используйте другие свойства, чтобы сделать Уведомление об изменениях в вышеупомянутом свойстве. Например, каждый раз, когда IsSelected изменяется, он также меняет статус нашего нового свойства LabelStatus. Также делает это на всех других логиках c связанных свойств набора :

public bool IsSelected
{
    get { return mIsSelected;  }
    set
    {
        mIsSelected = value;
        OnPropertyChanged("IsSelected"); 
        OnPropertyChanged("LabelStatus"); 
    }
}

public string LabelStatus 
{ 
    get { return IsSelected? listofitems.Where( ... ).Count() : "-"; } 
}

Затем просто привязывается к LabelStatus как Content="{Binding LabelStatus}" />


В моем блоге приведен более полный пример:

Xaml: MVVM Пример для более простого связывания

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...