У меня есть TreeView
с HierarchicalDataTemplate
. Элементы заполнены правильно, но я не могу нажать на пункты TreeView
. (Я не могу выбрать один, так что он синим цветом). Я могу щелкнуть перед TreeViewItem
, а затем выбранный синим цветом. Похоже, есть небольшая коробка, которую я могу щелкнуть, но не все остальное.WPF HierarchicalDataTemplate TreeView не доступен для просмотра
Вот мой код:
XAML:
<TreeView ItemsSource="{Binding Main.TreeItems}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Children}">
<TreeViewItem Header="{Binding Path=Header}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
Модель
public class ITreeItem
{
public string Header { get; set; }
public List<ITreeItem> Children { get; set; }
}
class MainModel : INotifyPropertyChanged
{
private List<ITreeItem> _treeitems;
public MainModel()
{
_treeitems = new List<ITreeItem>();
List<ITreeItem> treeList = new List<ITreeItem>();
ITreeItem myItem1 = new ITreeItem();
myItem1.Header = "Test1";
myItem1.Children = new List<ITreeItem>();
treeList.Add(myItem1);
myItem1.Header = "Test2";
myItem1.Children = new List<ITreeItem>();
treeList.Add(myItem1);
TreeItems = treeList;
}
public List<ITreeItem> TreeItems
{
get
{
return _treeitems;
}
set
{
_treeitems = value;
OnPropertyChanged("TreeItems");
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Удивительно, некоторые примеры используют TreeViewItem таким образом, что я видел. Я застрял целую вечность с той же проблемой. – Andez