Оператор C # foreach выполняет для вас неявное приведение типа элемента, возвращаемого Items
, к указанному типу SurfaceListBoxItem
. Во время выполнения возвращенное значение string
не может быть преобразовано в SurfaceListBoxItem
. Вы можете решить эту проблему, используя var
вместо SurfaceListBoxItem
foreach(var n in BackgroundsList.Items)
{
if (n.ToString() == current) BackgroundsList.SelectedItem = n;
}
Или, конечно, вы можете использовать LINQ:
BackgroundsList.SelectedItem = (
from n in BackgroundList.Items
where n.ToString() == current
select n).FirstOrDefault();