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
デバッグ時にこの値が正しく設定されていることを確認できますが、チェックボックスが画面にリストされているときは常にチェックされていません。
期待どおりにチェックするにはどうすればよいですか?