我有以下XAML:
<GroupStyle.HeaderTemplate>
<DataTemplate>
<Grid Background="#286C9A" Width="336" Height="22">
<TextBlock Text="{Binding Checked}" Foreground="Black" HorizontalAlignment="Left"/>
<CheckBox IsChecked="{Binding Checked}" HorizontalAlignment="Right" />
</Grid>
</DataTemplate>
</GroupStyle.HeaderTemplate>
它是ListView中的模板。 Checked是一个bool属性,问题是属性的初始值被正确传递给视图(TextBlock和CheckBox)。但是,对属性的更改仅反映在TextBlock上,Checkbox不会做出反应。
有人可以告诉我会发生什么吗?
编辑:
ViewModel的相关部分(我相信)是:
public class MenuGroup : ObservableCollection<MenuItem>
{
bool @checked;
public bool Checked
{
get { return @checked; }
set
{
if (@checked == value) return;
@checked = value;
OnPropertyChanged(new PropertyChangedEventArgs("Checked"));
}
}
}
编辑:很明显,我第一次单击复选框时绑定停止工作,因此手动更改了它的状态。如果它是TwoWay绑定,它一直工作。但为什么会这样,我不知道。