繁体   English   中英

数据模板和列表框

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM