【发布时间】:2012-09-13 10:01:54
【问题描述】:
我有一个这样定义的 xaml 样式:
<Style TargetType="{x:Type ListViewItem}">[...]</Style>
<Style TargetType="{x:Type ListViewItem}" x:Key="track_selected">[...]</Style>
这是以编程方式为列表视图项应用“track_selected”样式的代码
((ListViewItem)lv_tracklist.ItemContainerGenerator.ContainerFromIndex(currentTrackIndex)).Style = FindResource("track_selected") as Style;
我的问题是,如何将 mylistview 中的所有 listviewitem 重置为其默认样式,即上面列出的第一个样式?
【问题讨论】:
-
为什么要从后面的代码中设置样式?你考虑过使用触发器吗?它们的使用将解决您的问题
-
((ListViewItem)lv_tracklist.ItemContainerGenerator.ContainerFromIndex(currentTrackIndex)).Style = null;
-
谢谢科林史密斯。我是否必须为 (int i=lv_tracklist.Items.Count; --i >= 0;) {..} 循环所有 listviewItem 还是有更快的解决方案?
-
对不起,但看起来更好这并不能解决我的问题,因为将样式设置为 null 不会恢复为默认样式,即 但它重置为默认的 wpf 样式 :-(
标签: c# wpf listview styles listviewitem