Это значение не может быть вычислено в момент инициализации поля.Это слишком рано.Объект все еще создается, и компилятор не может быть уверен, что базовая часть находится в допустимом состоянии, поэтому доступ к его данным не разрешен.
Я бы порекомендовал вам реализовать свойство самостоятельно, чтобы выможет контролировать, когда логика выполняется.Тогда вы можете загрузить его, когда захотите.Например, простая отложенная загрузка может работать так:
class ItemNode:TreeNode
{
internal private string _key = null;
internal public string Key
{
get
{
if (_key == null) _key = base.FullPath.split("\\")[1];
return _key;
}
set
{
_key = value;
}
}
}