Получение ListBoxItems вести себя как переключатели - PullRequest
1 голос
/ 03 августа 2011

У меня есть ToggleButton внутри ListBox, и когда эта кнопка нажата, я хочу, чтобы все остальные элементы в ListBox были не отмечены.

Я сейчас пытаюсь это

    private void ToggleButton_Click(object sender, RoutedEventArgs e)
    {
        spriteToggleButton _tb = sender as ToggleButton;

        for (int i = 0; i < aListBox.Items.Count; i++)
        {
            ListBoxItem lbi = (ListBoxItem)aListBox.Items[i]; // invalid cast exception here
            lbi.IsSelected = false;
        }

        _tb.IsChecked = true;
    }

но я получаю недопустимое исключение приведения.

Я бы подумал, что aListBox.Items [i] вернет объект ListBoxItem.

1 Ответ

2 голосов
/ 03 августа 2011

Используйте DataTemplate

<ListBox ItemsSource="{Binding Items}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <RadioButton IsChecked="{Binding SomeProperty}" GroupName="someName" />
        </DataTemplate>
    </ListBox.ItemTemplate>

</ListBox>

Поскольку все RadioButton s будут иметь одинаковые GroupName, только один будет проверен в любое время.

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