![](/img/trans.png)
[英]how can i display hierarchical data in a list box using data templates in wpf
[英]Data Templates And List Box
在我的应用程序中,我在他的ItemTemplate上有一个带有数据模板的列表框,并带有一些文本块和复选框。 我使用此应用程序加载Excel工作表,阅读其内容并向列表框中添加一些itens(目的是创建用于描述的文本块和用于事件的复选框)。
我的第一个想法是使用DataGrid,但是,当我阅读工作表时,我必须为复选框创建事件(每个CB为一个事件),但是我无法使用DataGrid做到这一点。 然后,我使用ItemTemplate中的数据模板转到了列表框选项。 但是在使用ContentPresenter时,我被困在“空”问题对象上(从我的阅读中得知,这是因为列表框上的项目不是“就绪”的,在WPF上有些错误)。
那么,还有另一种方法可以“自动”执行此操作? 还是我必须创建每个文本块和复选框?
谢谢 ! (对不起,英语不好)
实现此目的的常规方法是构造一个视图模型对象,以表示要显示的每个项目。 该视图模型可能包含bool属性和string属性来保存数据。 解析excel工作表时,请为每个条目构造一个视图模型的实例,将数据放入其中,然后将其添加到列表中
读取所有Excel数据后,就可以实现数据的表示形式。 首先,为您的视图模型对象声明一个DataTemplate。 在此DataTemplate中,将复选框绑定到bool,并将文本块/标签绑定到字符串。 接下来,声明一个ListBox
并将您的视图模型列表实例绑定到ListBox.ItemsSource
。 如果您正确执行了所有操作,则应该会看到一个列表框,其中每一行都包含一个复选框和一个描述。
注意:如果希望用户能够修改视图模型中的数据,请确保在视图模型对象上实现INotifyPropertyChanged并在DataTemplate中使用TwoWay绑定。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.