我习惯了旧的Winforms做事方式。显然WPF ListViews充满了... XmlElements?我该怎么做才能禁用ListViewItem
?
foreach (XmlElement item in this.lvwSourceFiles.Items)
{
//disable?
}
答案 0 :(得分:2)
ListView
是ItemsControl
。 ItemsControl.Items
未返回子控件 - 它会返回项 - 即您已直接添加到ListView
的对象,或通过数据绑定。我想在这种情况下你已经将你的ListView
绑定到了一些XML,对吗?
ListViewItem
(和其他类似的类 - 例如ListBoxItem
ListBox
)称为“项目容器”。要检索给定项目的项容器,您应该这样做:
ListView lv;
...
foreach (object item in lv.Items)
{
ListViewItem lvi = (ListViewItem)lv.ItemContainerGenerator.ContainerFromItem(item);
}
答案 1 :(得分:0)
您需要访问代表数据项的ListViewItem
。您可以通过ItemContainerGenerator
foreach (object item in this.lvwSourceFiles.Items)
{
UIElement ui = lvwSourceFiles.ItemContainerGenerator.ContainerFromItem(item) as UIElement;
if (ui != null)
ui.IsEnabled = false;
}
答案 2 :(得分:-3)
您可以轻松地在XAML中执行