Maalesef kök düğümlerin güncellemiyor ObservableCollection bağlı - benim sorum this one neredeyse aynı ama uygulanabilir bir cevap almadığından, başkası bazı taze fikirleri olduğunu umuyorum. WPF TreeView
Tek tip bir hiyerarşiye bağlı bir WPF TreeView var:public class Entity
{
public string Title { get; set; }
public ObservableCollection<Entity> Children { get; set; }
}
Varlık sınıfı INotifyPropertyChanged uygular, ama netlik için bu kodu atladık.
TreeView Bir ObservableCollection < Varlık> ve her Varlık örneğine bağlı olan Çocuk özelliği aracılığıyla bulunan Varlık örnekleri kümesi gösterir:
<TreeView ItemsSource="{Binding Path=Entities}">
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type local:Entity}" ItemsSource="{Binding Path=Children}">
<TextBlock Text="{Binding Path=Title}" />
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
Başlangıçta TreeView beklendiği gibi bağlanır ve doğru olarak bir çok düzeyli görüntüler hiyerarşi. Ayrıca, Çocuk koleksiyonlarından birinin üyeliği programlı olarak değiştirildiğinde, değişiklikler TreeView'e doğru şekilde yansıtılır.
Ancak kök üyesi seviyesinin üyeliğine değişiklikler < Varlık> TreeView yansıtılmaz ObservableCollection.Herhangi bir öneri takdir edilecektir. yerine aşağıdaki gibi bir şey [iyi] yapmanın, Sonra
public ObservableCollection<Entity> Entities
{
get;
set;
}
:
Teşekkür - parlak bir analiz! –
Vay, bu benim için çalıştı. Bu değişiklik neden işe yarıyor? –
@Mike [Bad] örneğinde yeni bir varlık yaratıyor, böylece orijinali ciltlemeyi kırıyor. [İyi] örnekte, sadece öğeleri temizler ve ekleyerek orijinal koleksiyonu korur. –