我正在动态生成 CheckBoxes,我想根据应该选择的选项来检查它们。
我有以下 XAML:
<StackPanel>
<StackPanel x:Name="ArmingPanel" />
</StackPanel>
以及以下代码:
private void AddCheckBoxes(OptionsVM options)
{
var converter = new FlagsEnumValueConverter();
foreach (Arming arming in Enum.GetValues(typeof(Arming)))
{
if (arming != Arming.None)
{
var binding = new Binding()
{
Path = new PropertyPath("Arming"),
Converter = converter,
ConverterParameter = arming
};
var checkBox = new CheckBox()
{
Content = arming.ToString(),
IsChecked = (options.Options.Arming & arming) != Arming.None
};
checkBox.SetBinding(CheckBox.IsCheckedProperty, binding);
ArmingPanel.Children.Add(checkBox);
}
}
}
根据已设置的标志,应将以下内容设置为true
或false
:
IsChecked = (options.Options.Arming & arming) != Arming.None
我可以在调试时看到这个值设置正确,但是当复选框列在屏幕上时,它们总是未选中。
我怎样才能让它们按预期进行检查?