Как избежать ошибок пути BindingExpression для связанных свойств, которые не всегда присутствуют? - PullRequest
0 голосов
/ 13 марта 2020

Определен следующий шаблон иерархических данных:

<HierarchicalDataTemplate ItemsSource="{Binding SubEntries}">

SubEntries могут быть объектами различных типов. Проблема в том, что не каждый тип на самом деле определяет SubEntries. (Это объекты для дерева, и некоторые записи не имеют подстатей).

Например, вот объект, который может содержаться в SubEntries, который имеет свой собственный SubEntries:

public class ScriptLevelLog : LogContainer
{
        public List<LogContainer> SubEntries { get; set; }

        public ScriptLevelLog()
        {
            SubEntries = new List<LogContainer>();
        }

        [JsonConstructor]
        public ScriptLevelLog(LogType logType, string time, string action, string target, string description, int lineNumber) : base(logType, time, action, target, description, lineNumber)
        {
            SubEntries = new List<LogContainer>();
        }
}

А вот тот, который не имеет:

public class DebugLevelLog : LogContainer
{
        public DebugLevelLog()
        {

        }

        [JsonConstructor]
        public DebugLevelLog(LogType logType, string time, string action, string target, string description, int lineNumber) : base(logType, time, action, target, description, lineNumber)
        {

        }
}

Есть ли способ избежать ошибок привязки данных в этой ситуации, или мне нужно переосмыслить свои связанные объекты?

...