我有三个复选框,即文件提交,文件提取和其他。我将这三个复选框互相排斥,如下面
<Grid Height="303" Width="500">
<ListBox Name="ListBox1" Margin="49,67,86,164">
<ListBox.Resources>
<Style TargetType="{x:Type ListBoxItem}">
<Style.Resources>
<SolidColorBrush
x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="White"/>
</Style.Resources>
</Style>
</ListBox.Resources>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Background="White" IsItemsHost="True"
Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox FontWeight="Bold" FontSize="13" IsThreeState="True" IsChecked="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type ListBoxItem}}}" Content="{Binding}" BorderThickness="1" AllowDrop="False" Focusable="True" Background="White" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
列表框在按照
加载的窗口上绑定private void Window_Loaded(object sender, RoutedEventArgs e)
{
List<string> lst = new List<string>();
lst.Add("Documnet Pickup");
lst.Add("Document Submission");
lst.Add("Others");
ListBox1.ItemsSource = lst;
}
如何在加载的窗口中选中一个复选框。这是最好的方法吗? 的
答案 0 :(得分:0)
尝试将最后一行添加到您的函数中。它会检查第一个复选框。
private void Window_Loaded(object sender, RoutedEventArgs e)
{
List<string> lst = new List<string>();
lst.Add("Documnet Pickup");
lst.Add("Document Submission");
lst.Add("Others");
ListBox1.ItemsSource = lst;
ListBox1.Items[0].Selected = true;
}
答案 1 :(得分:0)
由于您在此处将复选框IsChecked
属性绑定到列表框项IsSelected
属性:
IsChecked="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type ListBoxItem}}}"
您可以简单地将列表框选择的索引设置为项目的索引,例如,第一项:
List<string> lst = new List<string>();
lst.Add("Documnet Pickup");
lst.Add("Document Submission");
lst.Add("Others");
ListBox1.ItemsSource = lst;
ListBox1.SelectedIndex = 0;
然后相应的项目将自动选中复选框。