使ListBoxItems表现得像单选按钮

时间:2011-08-03 15:50:07

标签: c# silverlight windows-phone-7

我在ListBox中有一个ToggleButton,当单击该按钮时,我希望取消选中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 个答案:

答案 0 :(得分:2)

使用DataTemplate

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

</ListBox>

由于所有RadioButton都具有相同的GroupName,因此任何时候都只会检查一个{。}}。