我有這個代碼,我有一個帶有複選框的可觀察集合(類型Herarhy模型)的代碼。 在某些事件中,我將複選框設置爲禁用。WPF沒有響應可觀察集合中的複選框c#
問題: - 當我用debbuger運行代碼時,我發現它確實已更改爲禁用,但在界面上看不到更改。
我認爲這是一些可觀察的集合。 也當我從可觀察集合中刪除該項目並將其重新放回時它會更新。
<ListView.View> <GridView AllowsColumnReorder="False"> <GridViewColumn Width="50" Header=" "> <GridViewColumn.CellTemplate> <DataTemplate> <CheckBox IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}}, Path=IsBulkUpdatedChecked}" IsEnabled="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}}, Path=IsBulkUpdatedEnabled}"/> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> <GridViewColumn Width="175" Header="Project Name" DisplayMemberBinding="{Binding Name}"/> <GridViewColumn Width="120" Header="Code" DisplayMemberBinding="{Binding Code}"/> <GridViewColumn Width="120" Header="Step" DisplayMemberBinding="{Binding SelectedStep}"/> <GridViewColumn Width="150" Header="Version Name" DisplayMemberBinding="{Binding ActiveVersion}"/> </GridView>
private ObservableCollection<HierarchyModel> _ProjectsFamily = new ObservableCollection<HierarchyModel>(); public ObservableCollection<HierarchyModel> ProjectsFamily { get { return _ProjectsFamily; } set { _ProjectsFamily = value; RaisePropertyChanged("ProjectsFamily"); } } public bool IsBulkUpdatedChecked { get { return Hierarchy.IsBulkUpdatedChecked; } set { Hierarchy.IsBulkUpdatedChecked = value; RaisePropertyChanged("IsBulkUpdatedChecked"); } } public bool IsBulkUpdatedEnabled { get { return Hierarchy.IsBulkUpdatedEnabled; } set { Hierarchy.IsBulkUpdatedEnabled = value; RaisePropertyChanged("IsBulkUpdatedEnabled"); } }
是什麼層次?你在屬性的getter/setter中使用它。另外,嘗試將BindingMode設置爲CheckBoxe的IsChecked爲TwoWay – 2014-09-22 14:57:18
我認爲這是可觀察集合中的某些事情。當我從可觀察集合中刪除該項目並將其重新放回時,它也會更新。 – igor 2014-09-22 15:03:29