Как я могу установить свои CheckBoxes внутри моего ListBox для отключения?Как я могу установить свои CheckBoxes внутри моего списка ListBox для отключения
XAML:
<GroupBox Header="A GroupBox" BorderThickness="2" Width="247" HorizontalAlignment="Left" VerticalAlignment="Top" Height="183" Margin="405,155,0,0">
<Grid>
<ListBox Name="MyListBoxThing" ItemsSource="{Binding MyItemsClassThing}" Height="151" Width="215" HorizontalAlignment="Left" VerticalAlignment="Top" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollBarVisibility="Auto" Margin="10,0,0,0">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding IsSelected, Mode=TwoWay}" />
<TextBlock Text="{Binding Path=Name}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</GroupBox>
MainWindow.xaml.cs
public class MyItemsClassThing
{
public string Name { get; set; }
public bool IsSelected { get; set; }
}
Проблема: Я пытаюсь отключить мой CheckBox-х динамически, которые находятся внутри моего списка. Но когда я отключу ListBox, он также отключает мою вертикальную полосу прокрутки. Итак, теперь я думаю, что я должен получить доступ к CheckBoxes внутри Listbox внутри моего GroupBox, а затем отключить их один за другим. Как я могу это сделать?
Я попытался это, но не везло:
var children = LogicalTreeHelper.GetChildren(MyListBoxThing);
foreach(var item in children)
{
var c = item as CheckBox;
c.IsEnabled = false;
}
Я хочу сказать, как:
loop through the listbox
if you find a check box
checkbox.isenabled = false
endif
end
Заранее спасибо
Попробуйте связать свойство IsEnabled. – Dexion