【发布时间】:2018-04-05 16:15:54
【问题描述】:
我有 30 个复选框。如果我选中任何 6 个复选框,则应禁用剩余的 24 个复选框,如果我取消选中 6 中的任何一个复选框,则应启用所有复选框。
<Style TargetType="{x:Type ListBox}">
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<Border BorderBrush="Black" BorderThickness="4"
CornerRadius="5" Margin="6"
>
<CheckBox Uid="checkbox1" Name="checkbox1" Checked="CheckBox_Checked" Unchecked="CheckBox_UnChecked" IsChecked="{Binding ElementName=button,Path=IsChecked,Mode=OneWay}">
<Image
Source="{Binding Path=UriSource}"
Stretch="Fill"
Width="100" Height="120"
/>
</CheckBox>
</Border>
</DataTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
<ListBox Name="List1" ItemsSource="{Binding}" Margin="-50,-8,93,0" RenderTransformOrigin="0.5,0.5" Height="289" VerticalAlignment="Top" >
<ListBox.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="0.975" ScaleY="0.997"/>
<SkewTransform AngleY="-8.98" AngleX="9.705"/>
<RotateTransform Angle="9.419"/>
<TranslateTransform Y="76.889" X="64.258"/>
</TransformGroup>
</ListBox.RenderTransform>
</ListBox>
c#:
if (iList.Count == 6) { List1.IsEnabled = false; }
它禁用整个列表框。 ilist 包含选中复选框值的集合。
有什么方法可以做到这一点? 请帮帮我。
【问题讨论】:
-
分享你尝试过的逻辑。
-
if (iList.Count == 6) { List1.IsEnabled = false; }
-
ilist 是选中复选框值的集合。
-
它禁用整个列表框
-
请用这个逻辑更新你的问题。