Как проверить наличие определенного элемента, отмеченного или не отмеченного - PullRequest
2 голосов
/ 27 февраля 2011

я сделал флажок в wpf, получил его из интернета. Я хочу посмотреть, какой элемент отмечен или не отмечен. Любая идея, как это сделать, здесь идет код

Класс

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

Использование

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>

взял его отсюда Проверено ListBox

Вопрос

Как осуществить изменение свойства, чтобы я мог знать, какой элемент был проверен, а какой не отмечен

Решение My Code

1 Ответ

2 голосов
/ 27 февраля 2011

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

Пример 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));
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...