我在listbox中生成了checkboxesat运行时,问题是如何知道所选的复选框是什么?
我在C#中试过以下代码:
CheckBox box;
if ( box.Checked )
if ( box.IsChecked )
这是以下代码:
public partial class Choose_Users
{
Service1Client C = new Service1Client();
Array a;
user_detail d;
String F_Name, L_Name;
CheckBox user = new CheckBox();
public Choose_Users()
{
InitializeComponent();
a = C.GetData();
for (int i = 0; i < a.Length; i++)
{
d = (user_detail)a.GetValue(i);
user.Name = d.First_name;
user.Content= d.First_name;
listBox1.Items.Add(user);
}
}
private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
List<user_detail> list = new List<user_detail>();
foreach(CheckBox box in this.listBox1.Items)
{
if (box.Checked // here my problem is
{
}
}
}
}
他们没有工作。有什么帮助吗?
答案 0 :(得分:0)
无论编程语言如何,您都需要保留对动态创建的复选框的引用。
您可以通过在任何本地方法和/或事件之外创建您的复选框来执行此操作:
CheckBox box;
然后在本地方法或事件中指定:
box = new CheckBox();
然后您可以在代码和框中的任何其他位置访问框 .IsChecked将按您的需要工作。
答案 1 :(得分:0)
请使用以下内容替换Choose_Users中的for循环。以下代码每次都会创建一个新的复选框对象。
for (int i = 0; i < a.Length; i++)
{
CheckBox user = new CheckBox();
d = (user_detail)a.GetValue(i);
user.Name = d.First_name;
user.Content= d.First_name;
listBox1.Items.Add(user);
}
关于checkstate,box.Checked是完美的。
如果这有助于你,请告诉我。
答案 2 :(得分:0)
我们创建字符串选择的项目,并为其分配checkboxList的所选项目,如下所示:
string selectedItem = Box.SelectedItem.Text;