C# 检测绑定在按钮上的布尔值数组的变化

C# 检测绑定在按钮上的布尔值数组的变化,c#,wpf,xaml,mvvm,data-binding,C#,Wpf,Xaml,Mvvm,Data Binding,我收集了7个是/否按钮。因此,我制作了一系列布尔值以用于该按钮。我在WPF中使用MVVM 我的其中一个按钮的Xaml看起来像这样 我用需要从数据库中提取的属性填充数组。OnPageEnter() ListYesNoButtons=new bool[7]{Item.ProcessedItem.TimePersonCheck,Item.ProcessedItem.AnnoncedSafetyCheck, Item.ProcessedItem.SafetyDescriptionCheck,Ite

我收集了7个是/否按钮。因此,我制作了一系列布尔值以用于该按钮。我在WPF中使用MVVM

我的其中一个按钮的Xaml看起来像这样


我用需要从数据库中提取的属性填充数组。OnPageEnter()

ListYesNoButtons=new bool[7]{Item.ProcessedItem.TimePersonCheck,Item.ProcessedItem.AnnoncedSafetyCheck,
Item.ProcessedItem.SafetyDescriptionCheck,Item.ProcessedItem.ToldPerson,
Item.ProcessedItem.BalancePartners,Item.ProcessedItem.CheckSafety,Item.ProcessedItem.Positif};
RaisePropertyChanged(()=>ListYesNoButtons);
为了获取和设置这些值,我写了这个get/set

#区域列表无按钮
私有bool[]\u列表没有按钮;
公共bool[]列表否按钮
{
获取{return\u listyesnobutions;}
设置
{
如果(_listYesNoButtons==值)
返回;
_listYesNoButtons=值;
RaisePropertyChanged(()=>ListYesNoButtons);
}
}
#端区
问题是,当我更改其中一个按钮的状态时。未检测到更改,因此在单击“是/否”时不会更新, 但是当我提交表格的时候。这些值是正确的

我的DoOk方法是这样的

Item.ProcessedItem.TimePersonCheck=listyesnobutions[0];
Item.ProcessedItem.AnnoncedSafetyCheck=listyesnobutions[1];
Item.ProcessedItem.SafetyDescriptionCheck=ListYesNoButtons[2];
Item.ProcessedItem.ToldPerson=listyesnobutions[3];
Item.ProcessedItem.BalancePartners=listyesno按钮[4];
Item.ProcessedItem.CheckSafety=ListYesNoButtons[5];
Item.ProcessedItem.Positif=ListYesNoButtons[6];

我需要在数组中更改其中一个值时触发集合。在我的用例中如何实现它?

您的Raise属性更改仅在集合级别进行连接。因此,如果重新初始化主bool[]集合,则只会发生RaiseProperty更改

没有触发每个索引的属性更改的代码。不要使用bool[]而是使用:

System.Collections.ComponentModel.ObservableCollection<bool>
System.Collections.ComponentModel.ObservableCollection

该集合负责每个更新项的RaisePropertyChange。

我更改了bool[],但当我更改1按钮的状态时,我的断点仍然没有触发。您希望点击哪个断点?列表的设置者没有按钮??当分配/初始化集合时,这种情况只会发生一次。每次索引更改它都不会命中。我想每次更改按钮状态时,它都会更新该集合中的值。是的,我刚刚在按钮状态上附加了一个文本框IsEnabled道具。它有效,我的坏:)