我有包含該類型TPDItem的項一個TreeView,每個TPDItem具有TPDItems的的ObservableCollection其中顯示以下述方式: TPDItem HierarchyWPF MVVM - 在樹視圖項之後不被更新被openened
該級別顯示哪些項目是哪些孩子的父母,1.1,1.2和1.3是具有級別1的項目的子項。
如果我勾選複選框導出,我要設置該項目的導出值,並且它是子項目它是兒童的孩子)遞歸地。 這是我TPDItem類:
public class TPDItem : INotifyPropertyChanged
{
public List<string> LevelArr { get; }
public string Level { get; }
public string _12NC { get; }
private string pn;
public string Description { get; }
private ObservableCollection<TPDItem> children = new ObservableCollection<TPDItem>();
private bool isExported = true;
public bool IsExported
{
get { return isExported; }
set
{
SetExported(value);
OnPropertyChanged("IsExported");
}
}
public string PN
{
get { return pn; }
set { pn = value; }
}
public ObservableCollection<TPDItem> Children
{
get
{
return children;
}
}
public void SetExported(bool exported)
{
isExported = exported;
foreach (TPDItem item in Children)
{
item.SetExported(exported);
}
}
}
這是我的相關TreeView的XAML代碼:
<TreeView ItemsSource="{Binding Hierarchy}" Margin="10,0,10,0" Height="243" >
<TreeView.Resources>
<HierarchicalDataTemplate ItemsSource="{Binding Children}" DataType="{x:Type models:TPDItem}">
<Grid >
<TextBlock Text="{Binding Level}"/>
<TextBlock Text="{Binding _12NC}" Margin="{Binding Margins._12NC}"/>
<TextBlock Text="{Binding PN}" Margin="{Binding Margins.PN}"/>
<TextBlock Text="{Binding Description}" Margin="{Binding Margins.Description}"/>
<CheckBox Content="Export" Margin="{Binding Margins.CheckBox}" IsChecked="{Binding IsExported, Mode=TwoWay}" />
</Grid>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
然而,該複選框在孩子只被更新到其父母的價值,如果發現孩子有沒有已擴大至。創建樹之後,如果我取消選中頂部項目的複選框,則整個列表將被取消選中。但是,如果我展開並關閉一個孩子,然後勾選父母的複選框,則他們不會進行視覺更新。
如果您需要更多信息,請讓我知道。
男人,你是一個天才。這完全有道理!非常感謝你 –