在WPF中,我有一个bool?值的集合,我想以编程方式将每个值绑定到单独的复选框。我希望这些绑定是双向的,这样在代码中更改集合中的各个项的值会更新复选框,反之亦然。
我已经花了很长时间来尝试解决这个问题,但我完全被卡住了。使用以下代码时,复选框仅在窗口加载时获得正确的值,之后就不再更新了。 (更新:这似乎是.NET4中的一个错误,因为在相同的.NET3.5项目中会更新集合。更新:Microsoft已确认该错误,并将在.NET4版本中修复。)
非常感谢您的帮助!
C#:
我已经花了很长时间来尝试解决这个问题,但我完全被卡住了。使用以下代码时,复选框仅在窗口加载时获得正确的值,之后就不再更新了。 (更新:这似乎是.NET4中的一个错误,因为在相同的.NET3.5项目中会更新集合。更新:Microsoft已确认该错误,并将在.NET4版本中修复。)
非常感谢您的帮助!
C#:
namespace MyNamespace
{
public partial class MyWindow : Window, INotifyPropertyChanged
{
public MyWindow()
{
InitializeComponent();
DataContext = this;
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
public List<bool?> myCollection = new List<bool?>
{ true, false, true, false, true, false };
public List<bool?> MyCollection
{
get { return myCollection; }
set { myCollection = value; }
}
}
}
XAML:
<CheckBox IsChecked="{Binding Path=MyCollection[0], Mode=TwoWay}">