Так, пока слегка отпустило. Допустим, что Level у тебя становится нечто типа:
namespace WindowsFormsApp1.Entities
{
public class Level
{
public int Id { get; set; }
public string Name { get; set; }
public string BaseRevitFileName { get; set; }
public bool IsTemplate { get; set; }
}
}
И вместо Name тебе надо показывать и BaseRevitFileName, и собственно Name (уж откуда и как ты будешь это выцеплять - проблема того самого LevelRepository
).
Тогда есть два варианта:
Добавлять "напрямую, в лоб и без протокола":
foreach (Level item in levels)
{
checkedListBox1.Items.Add(item.BaseRevitFileName + " => "+ item.Name);
checkedListBox1.SetItemChecked(pos, item.IsTemplate);
pos++;
}
Либо ради приколу переопределить ToString для Level:
namespace WindowsFormsApp1.Entities
{
public class Level
{
public int Id { get; set; }
public string Name { get; set; }
public string BaseRevitFileName { get; set; }
public bool IsTemplate { get; set; }
public override string ToString()
{
return $"{BaseRevitFileName} >> {Name}";
}
}
}
И тогда вставка становится попроще:
foreach (Level item in levels)
{
checkedListBox1.Items.Add(item);
checkedListBox1.SetItemChecked(pos, item.IsTemplate);
pos++;
}
Учитывая далеко ненулевую вероятность, что аналогичное представление понадобится еще в тысяче разных мест, я б, наверно, пошел по второму пути