我在ListBox中有一个CheckBox。我将ListBox ItemsSource设置为Agency of List。代理商有财产
public class Agency
{
public bool isSelected { get; set;}
}
<ListBox> <!-- ItemsSource set in codebehind to List<Agency> -->
<CheckBox IsChecked="{Binding Path=isSelected, Mode=TwoWay}" />
</ListBox>
我有一个检查所有复选框的功能
//SelectAll button
private void SelectAll_Click(object sender, RoutedEventArgs e)
{
List<Agency> list = this.AgencySubListBox.ItemsSource as List<Agency>;
for (int i = 0; i < list.Count; i++)
{
Agency d = list[i];
d.isSelected = true;
}
}
当我点击全选按钮时,我希望检查所有复选框。但没有任何反应。
答案 0 :(得分:1)
您必须为您的代理商级实施INotifyPropertyChanged。 然后在您的isSelected-Property中,如果已更改属性的值,则调用PropertyChanged。您在示例中使用的Auto-properties不支持INotifiyPropertyChanged,因此您无法将它们用于您的目的。 如果您使用.net,我还建议使用大写字母启动属性名称。这是广为接受的标准。
答案 1 :(得分:1)
您应该使模型实现INotifyPropertyChanged并实现它
答案 2 :(得分:1)
没有什么可以告诉用户界面你的复选框绑定已经失效,并且需要重新检查。因此,请在Agency
类型上实施INotifyPropertyChanged。