作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法显示项目列表。
我究竟做错了什么?
XAML( View ):
<Grid.DataContext>
<vm:MainViewModel />
</Grid.DataContext>
<Grid.Resources>
<DataTemplate x:Key="Remedy">
<TextBlock Text="{Binding Titulo}" />
</DataTemplate>
<HierarchicalDataTemplate x:Key="Laboratorio"
ItemTemplate="{StaticResource Remedy}"
ItemsSource="{Binding Items}">
<TextBlock Text="{Binding Titulo}" />
</HierarchicalDataTemplate>
<HierarchicalDataTemplate x:Key="Root"
ItemTemplate="{StaticResource Laboratorio}"
ItemsSource="{Binding Items}">
<TextBlock Text="{Binding Titulo}" />
</HierarchicalDataTemplate>
</Grid.Resources>
<TreeView x:Name="dirR"
ItemsSource="{Binding Path=Arbol}"
ItemTemplate="{StaticResource Root}">
</TreeView>
class MainViewModel:INotifyPropertyChanged
{
private TreeItem _arbol = new TreeItem("Remedys");
public TreeItem Arbol
{
set
{
_arbol = value;
OnPropertyChanged("Arbol");
}
get { return _arbol; }
}
public MainViewModel()
{
//Populate Arbol
...
}
}
public class TreeItem:INotifyPropertyChanged
{
private String _titulo;
private ObservableCollection<TreeItem> _items;
public String Titulo
{
get { return _titulo; }
set
{
_titulo = value;
OnPropertyChanged("Titulo");
}
}
public ObservableCollection<TreeItem> Items
{
get { return _items; }
set
{
_items = value;
OnPropertyChanged("Items");
}
}
public TreeItem(String __titulo)
{
Titulo = __titulo;
}
public MainWindow()
{
InitializeComponent();
}
public MainWindow()
{
InitializeComponent();
MainViewModel vm = new MainViewModel();
dirR.Items.Add(vm.Arbol);
}
最佳答案
您只能将值绑定(bind)到 ItemsSource
实现IEnumerable
.一般来说你必须绑定(bind)一个收藏 至ItemsSource
.
更改您的 MainViewModel
到
class MainViewModel:INotifyPropertyChanged
{
private ObservableCollection<TreeItem> _arbol =
new ObservableCollection<TreeItem>(
new List<TreeItem>
{
new TreeItem("Remedys")
} );
public ObservableCollection<TreeItem> Arbol
{
set
{
_arbol = value;
OnPropertyChanged("Arbol");
}
get { return _arbol; }
}
public MainViewModel()
{
//Populate Arbol
...
}
}
关于C# XAML MVVM Treeview 控件数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44942442/
我是一名优秀的程序员,十分优秀!