gpt4 book ai didi

c# - 在 wpf c# 的网格中显示选中复选框的值

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:21 25 4
gpt4 key购买 nike

我的组框有问题。在组框中我有一个网格,其中我有大约 20 个复选框。问题是我需要将上面所有选中的复选框的值显示到另一个组框中。

我在 WPF C# 中工作。

上面的触发事件是什么?

如果选中的复选框未选中,则显示在第二组框中的值应该消失。

最佳答案

在 Wpf 中你有一个 Checked Event , UnChecked EventIndeterminate Event它们都使用通用 RoutedEventHandler 因此您应该能够将它们与通用事件处理程序连接起来,检查 Tag 属性中的发件人名称或唯一标识符并使​​用它更改另一个 GroupBox 中的值。

Xaml

<CheckBox Content="CheckBox" Checked="checkedChanged" Unchecked="checkedChanged" Indeterminate="checkedChanged" Height="16" HorizontalAlignment="Left" Margin="10,10,0,0" Name="checkBox1" VerticalAlignment="Top" Tag="1" />
<CheckBox Content="CheckBox" Checked="checkedChanged" Unchecked="checkedChanged" Indeterminate="checkedChanged" Height="16" HorizontalAlignment="Left" Margin="10,36,0,0" Name="checkBox2" VerticalAlignment="Top" Tag="2" />

Xaml.cs

private void checkedChanged(object sender, RoutedEventArgs e)
{
CheckBox cb = (CheckBox)sender;
int index;
if (int.TryParse(cb.Tag.ToString(), out index))
{
if (cb.IsChecked == true)
{
switch (index)
{
case 1:
break;

case 2:
break;

default:
break;
}
}
else if (cb.IsChecked == false)
{
switch (index)
{
case 1:
break;

case 2:
break;

default:
break;
}
}
else
{
switch (index)
{
case 1:
break;

case 2:
break;

default:
break;
}
}
}
}

我在评论中提到的示例:

Xaml

<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<GroupBox Grid.Column="0" BorderBrush="Black" BorderThickness="2">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<CheckBox Grid.Column="0" Grid.Row="0" Content="CheckBox" Checked="checkedChanged" Unchecked="checkedChanged" Indeterminate="checkedChanged" Height="16" HorizontalAlignment="Stretch" Name="checkBox1" VerticalAlignment="Top" Tag="0" />
<CheckBox Grid.Column="1" Grid.Row="0" Content="CheckBox" Checked="checkedChanged" Unchecked="checkedChanged" Indeterminate="checkedChanged" Height="16" HorizontalAlignment="Stretch" Name="checkBox2" VerticalAlignment="Top" Tag="1" />
<CheckBox Grid.Column="0" Grid.Row="1" Content="CheckBox" Checked="checkedChanged" Unchecked="checkedChanged" Indeterminate="checkedChanged" Height="16" HorizontalAlignment="Stretch" Name="checkBox3" VerticalAlignment="Top" Tag="2" />
<CheckBox Grid.Column="1" Grid.Row="1" Content="CheckBox" Checked="checkedChanged" Unchecked="checkedChanged" Indeterminate="checkedChanged" Height="16" HorizontalAlignment="Stretch" Name="checkBox4" VerticalAlignment="Top" Tag="3" />
</Grid>
</GroupBox>
<GroupBox Grid.Column="1" BorderBrush="Black" BorderThickness="2">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Label Grid.Column="0" Grid.Row="0" Content="" HorizontalAlignment="Stretch" Name="label1" VerticalAlignment="Top" Tag="1" />
<Label Grid.Column="1" Grid.Row="0" Content="" HorizontalAlignment="Stretch" Name="label2" VerticalAlignment="Top" Tag="2" />
<Label Grid.Column="0" Grid.Row="1" Content="" HorizontalAlignment="Stretch" Name="label3" VerticalAlignment="Top" Tag="3" />
<Label Grid.Column="1" Grid.Row="1" Content="" HorizontalAlignment="Stretch" Name="label4" VerticalAlignment="Top" Tag="4" />
</Grid>
</GroupBox>
</Grid>
</Window>

Xaml.cs

namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
Label[] myLabels = new Label[4];

public MainWindow()
{
InitializeComponent();

myLabels[0]=label1;
myLabels[1]=label2;
myLabels[2]=label3;
myLabels[3]=label4;

}

private void checkedChanged(object sender, RoutedEventArgs e)
{
CheckBox cb = (CheckBox)sender;
int index;
if (int.TryParse(cb.Tag.ToString(), out index))
{
if (cb.IsChecked == true)
{
myLabels[index].Content="Checked";
}
else if (cb.IsChecked == false)
{
myLabels[index].Content="UnChecked";
}
else
{
myLabels[index].Content="?";
}
}
}
}
}

关于c# - 在 wpf c# 的网格中显示选中复选框的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12418148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com