Mam ToggleButton wewnątrz ListBox, a po kliknięciu tego przycisku chcę, aby każdy inny element w ListBox był niezaznaczony.
obecnie próbuję tego
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;
}
ale otrzymuję nieprawidłowy wyjątek rzutowania.
Myślałem, że aListBox.Items [i] zwróci obiekt ListBoxItem.
Odpowiedzi:
2 dla odpowiedzi № 1Użyć DataTemplate
<ListBox ItemsSource="{Binding Items}">
<ListBox.ItemTemplate>
<DataTemplate>
<RadioButton IsChecked="{Binding SomeProperty}" GroupName="someName" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Od wszystkiego RadioButton
s będą mieć to samo GroupName
, tylko jeden zostanie sprawdzony w dowolnym momencie.