如何在C#代码中禁用WPF ListViewItem?

时间:2009-07-10 22:35:05

标签: c# wpf listview

我习惯了旧的Winforms做事方式。显然WPF ListViews充满了... XmlElements?我该怎么做才能禁用ListViewItem

foreach (XmlElement item in this.lvwSourceFiles.Items)
{
   //disable?

}

3 个答案:

答案 0 :(得分:2)

ListViewItemsControlItemsControl.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中执行