WPFには、ブール値のコレクションがありますか?値と私はこれらのそれぞれをプログラムで別々のチェックボックスにバインドしたいと思います。コード内のコレクション内の個々のアイテムの値を変更するとチェックボックスが更新され、その逆も同様になるように、バインディングをTwoWayにする必要があります。
私はこれを行う方法を理解しようと何年も費やしてきましたが、完全に行き詰まっています。次のコードでは、チェックボックスはウィンドウがロードされたときにのみ正しい値を取得します。それだけです。チェックボックスを変更しても、コレクションの値は更新されません。(更新:コレクションは同一の.NET3.5プロジェクトで更新されるため、これは.NET4のバグのようです。更新: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}">