Я работаю над добавлением некоторых свойств в класс расширения TreeView. Мне нужны дополнительные поля для контекста при щелчке по одному из элементов в дереве. Кажется, я не вижу древовидного представления, чтобы показывать какие-либо данные, которые я им даю. В моих MainView.cs я просто указать источник элементов, как, например:Расширение TreeView с дополнительными свойствами?
TreeMenu.ItemsSource = (an ObservableCollection of ParentItems)
XAML:
<Grid x:Name="TreeGrid" Width="350" HorizontalAlignment="Left">
<TreeView Name="TreeMenu" Background="Red" Foreground="Black">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type model:ParentItem}" ItemsSource="{Binding ChildItems}">
<TextBlock Text="{Binding Text}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
модель объекта:
public class ParentItem : TreeViewItem, INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void NotifyPropertyChanged(string info)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(info));
}
public ParentItem()
{
_text = "";
_url = "";
_childItems = new ObservableCollection<ChildItem>();
}
private string _text;
public string Text
{
get
{
return _text;
}
set
{
_text = value;
NotifyPropertyChanged("Text");
}
}
private string _url;
public string URL
{
get
{
return _url;
}
set
{
_url = value;
NotifyPropertyChanged("URL");
}
}
private ObservableCollection<ChildItem> _childItems;
public ObservableCollection<ChildItem> ChildItems
{
get
{
return _childItems;
}
set
{
_childItems = value;
NotifyPropertyChanged("ChildItems");
}
}
}
Обратите внимание, что ChildItem
почти идентичный ParentItem
, минус объект коллекции. Первоначально я пробовал расширение TreeNode
в классах объектов, но у этой проблемы была такая же проблема.
Кто-нибудь знает, почему мой TreeView не появится? Я что-то упускаю, расширяя TreeView?
Отлично, все, что я закончил, не расширяет TreeViewItem в моих классах. Это, похоже, было проблемой. Спасибо! –
Вы приветствуете !!! – Aybe