Tôi có một mảng bool có kích thước 4 và tôi muốn liên kết từng ô với một điều khiển khác. mảng bool này đại diện cho 4 trạng thái (false = failure, true = success). mảng bool Đây là một propery với một lớp:Làm thế nào để đạt được chức năng INotifyPropertyChanged cho các giá trị trong một bool []?
class foo : INotifyPropertyChanged {
...
private bool[] _Statuses;
public bool[] Statuses
{
get {return Statuses;}
set {
Statuses = value;
OnPropertyChanged("Statuses");
}
}
Trong XAML có 4 điều khiển, mỗi người bị ràng buộc vào một tế bào của mảng:
... Text="{Binding Path=Statuses[0]}" ...
... Text="{Binding Path=Statuses[1]}" ...
... Text="{Binding Path=Statuses[2]}" ...
... Text="{Binding Path=Statuses[3]}" ...
Vấn đề là các thông báo sự kiện là chỉ được nâng lên khi tôi thay đổi chính mảng đó và không được nâng lên khi tôi thay đổi một giá trị trong mảng đó, tức là, dòng mã tiếp theo sẽ làm tăng sự kiện:
nhưng dòng tiếp theo không tăng ngay cả t:
Statuses [0] = true;
Làm cách nào để tăng sự kiện mỗi khi một ô bị thay đổi?
Vâng, sử dụng ObservableCollection sẽ là cách đơn giản nhất để đi. –
'ObservableCollection' không thông báo khi giá trị của bất kỳ mục nào bên trong nó được thay đổi. –
decyclone
@decyclone: nó thông báo nếu mục thứ n của bộ sưu tập được di chuyển, thay thế, vv, đó là những gì mã OP làm. Bạn đúng ở chỗ điều này sẽ không xử lý trường hợp T có các thuộc tính và không thực hiện INotifyPropertyChanged, nhưng tôi đã xem xét điều đó ngoài phạm vi của câu hỏi. –