How to check for Specific Item checked or Unchecked

Refresh

December 2018

Views

426 time

2

i made check box in wpf ,Got it from Internet.I want to see which item is checked or unchecked.Any idea how to do this here goes the code

Class

public class CheckedListItem
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool IsChecked { get; set; }
    public string Email { get; set; }
}

Usage

List<CheckedListItem> AvailablePresentationObjects = new List<CheckedListItem>();
        CheckedListItem item = new CheckedListItem();
        for (int i = 0; i < 10; i++)
        {
            item = new CheckedListItem();
            item.Id = i;
            item.Name = i.ToString();
            item.IsChecked = false;
            AvailablePresentationObjects.Add(item);

        }
        list.ItemsSource = AvailablePresentationObjects;

XMAL

<ListBox x:Name="list"  Margin="3,277,0,0" Height="234" VerticalAlignment="Top" Selec
tionMode="Extended">
                        <ListBox.ItemTemplate>
                            <HierarchicalDataTemplate>
                                <my:RibbonCheckBox Label="{Binding Name}" IsChecked="{Binding IsChecked}"  />
                            </HierarchicalDataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>

took it from Here Checked ListBox

Question is

How to implement property change so that i can know which item was checked and which was unchecked

My Code solution

1 answers

2

Вы можете получить коллекцию выбранных элементов : list.SelectedItems. Каждый элемент вы можете бросить на CheckedListItemи проверить , что элемент проверяется. Если вы хотите обработать изменение свойств, вы должны реализовать интерфейс INotifyPropertyChanged в CheckedListItemклассе

Пример INotifyPropertyChanged: Добавьте это к классу и вызвать OnPropertyChangedв свойствах:

    private boolean _isChecked;
    public boolean IsChecked
    {
        get { return _isChecked; }
        set
        {
            _isChecked= value;
            OnPropertyChanged("IsChecked");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected void OnPropertyChanged(string name)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(name));
        }
    }