2013-05-15 1 views
1

Есть ли встроенный способ использования изображения по умолчанию, когда не удалось найти ImageKey ListViewItem?Как установить образ изображения по умолчанию ListViewItem, если не удалось найти ключевое слово изображения

У меня есть ImageList:

  • car.png
  • house.png
  • default.png

И ListViewItem

var item = new ListViewItem("Item1"); 
item.ImageKey = "computer.png"; 

По умолчанию ListView не отображает изображение в этом случае. Есть ли возможность отобразить «default.png»

ответ

2

Это должно сделать это (хотя может быть и более элегантный способ). Скорее всего, вам придется адаптировать это, чтобы учесть, как вы заполняете ListView. Основной код выглядит так:

string imageKey = "DefaultKey"; 
string someOtherKey = "SomeOtherKey"; 
if (lv.SmallImageList.Images.ContainsKey("SomeOtherKey")) 
{ 
    imageKey = someOtherKey; 
} 
var item = new ListViewItem("Item1"); 
item.ImageKey = imageKey; 

Обратите внимание, что в зависимости от того, как вы заселять свой список, это может быть лучше, вырвали в функцию, которая возвращает соответствующий ключ:

string getImageKey(string candidateKey) 
{ 
    if (lvAzureDirectory.SmallImageList.Images.ContainsKey(candidateKey)) 
    { 
     return candidateKey; 
    } 
    else 
    { 
     return "DefaultKey"; 
    } 
} 
+0

Хотя это не ответ, который я ожидал получить, так я бы это сделал. – dwonisch

Смежные вопросы