我正在動態生成CheckBoxes,我想根據應該選擇哪些選項來檢查它們。如何動態檢查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
我可以看到這個值被正確設置w如果我調試,但是當複選框在屏幕上列出時,它們總是未選中。
如何讓他們按預期檢查?
的
ConverterParameter
的'IsChecked'屬性由你的綁定設置。 – Matten 2012-04-10 11:02:50東西告訴我你的綁定被破壞。如果你想將它綁定到某個東西,你不應該手動設置你的IsChecked屬性。 – 2012-04-10 11:05:24
正如Matten所說,在您將其設置爲代碼後,立即通過「綁定」設置「IsChecked」。如果它返回'Nullable
Clemens
2012-04-10 11:15:58