我用WPF创建了一些CheckBoxex。对于我的程序而言,重要的是我可以使用数组访问我的复选框。
例如
<ScrollViewer>
<StackPanel Margin="0,0,10,0">
<CheckBox Name="iGPIO[0]" Content="GPIO 1"></CheckBox>
<CheckBox Name="iGPIO[1]" Content="GPIO 2"/>
<CheckBox Content="GPIO 3"/>
<CheckBox Content="GPIO 4"/>
<CheckBox Content="GPIO 5"/>
<CheckBox Content="GPIO 6"/>
<CheckBox Content="GPIO 7"/>
<CheckBox Content="GPIO 8"/>
<CheckBox Content="GPIO 9"/>
<CheckBox Content="GPIO 10"/>
<CheckBox Content="GPIO 11"/>
<CheckBox Content="GPIO 12"/>
<CheckBox Content="GPIO 13"/>
<CheckBox Content="GPIO 14"/>
<CheckBox Content="GPIO 15"/>
<CheckBox Content="GPIO 16"/>
<CheckBox Content="GPIO 17"/>
<CheckBox Content="GPIO 18"/>
<CheckBox Content="GPIO 19"/>
<CheckBox Content="GPIO 20"/>
<CheckBox Content="GPIO 21"/>
<CheckBox Content="GPIO 22"/>
<CheckBox Content="GPIO 23"/>
<CheckBox Content="GPIO 24"/>
<CheckBox Content="GPIO 25"/>
<CheckBox Content="GPIO 26"/>
<CheckBox Content="GPIO 27"/>
</StackPanel>
答案 0 :(得分:0)
我建议使用ListBox将复选框和DataTemplate分组
<StackPanel>
<ListBox Name="listBox" ItemsSource="{Binding TheList}">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Name="CheckBoxZone" Content="{Binding TheText}"
Tag="{Binding TheValue}" Checked="CheckBoxZone_Checked"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
答案 1 :(得分:0)
这是一种实现方法。
首先,给您的StackPanel一个Name属性,例如“ myStackPanel”。
然后在顶部添加此Using,用于查询对象:
using System.Linq;
并执行以下操作:
// Get all available checkboxes in the StackPanel's children.
var checkBoxes = myStackPanel.Children.OfType<CheckBox>();
for (int i = 0; i < checkBoxes.Count; i++)
{
MessageBox.Show(checkBoxes[i].Content + ": " checkBoxes[i].IsChecked.ToString());
// GPIO 1: true
// GPIO 2: false
// etc...
}
// Get first checkbox state
MessageBox.Show(checkBoxes[0].IsChecked.ToString());