如何在更改复选框时更新SelectionText
。
当我提出PropertyChangedEvent
时,PropertyChanged
在Checked
事件中为空。
BitmaskStackPanel是父级,显示所有复选框。
这可能非常简单,但我之前没有这样做过。
class BitmaskStackPanel {
public BitmaskStackPanel(string name, List<BitmaskCheckBox> checkboxes, long defaultValue = 0)
{
Name = name;
_checkboxes = checkboxes;
DefaultValue = defaultValue;
foreach (var bmcb in Checkboxes)
{
Children.Add(bmcb);
}
}
public List<BitmaskCheckBox> Checkboxes
{
get
{
return _checkboxes;
}
}
public string SelectionText
{
get
{
return ToString();
}
}
}
}
public class BitmaskCheckBox : CheckBox, INotifyPropertyChanged
{
public BitmaskCheckBox(long value, string details, bool isChecked = false, Visibility visibility = Visibility.Visible)
{
Tag = value;
Content = details;
IsChecked = isChecked;
Visibility = visibility;
}
public event PropertyChangedEventHandler PropertyChanged;
}
答案 0 :(得分:0)
当您使用多个CheckBoxes
时,您必须使用MultiBinding
而非简单Binding
。
在MultiBinding
中,您绑定多个来源并编写MultiValueConverter
以将所有即将到来的值合并为单个值。
现在,当您使用自己的名为SelectionText
的属性时,必须将其设为Dep.Property。并谨慎使用代码{/ 1}}。
您只能将绑定与A的DependencyProperty一起使用 的DependencyObject。