Объекты, определенные в XAML, создаются с использованием конструктора по умолчанию и , затем устанавливаются их свойства.Итак, представьте, что это:
<my:TouchScreenDisabledGrid x:Name="dataGridView" Tag="13" />
Моральный эквивалент этого:
var g = new TouchScreenDisabledGrid();
g.Name = "dataGridView";
g.Tag = "13";
Теперь должно быть очевидно, почему Tag
это null
внутри вашего конструктора, следовательно, выполучение NullReferenceException
при вызове ToString()
.
Продолжая далее, вы не можете использовать классическую модель выполнения чего-либо внутри конструктора, которая зависит от устанавливаемых свойств объекта.Вы должны найти другой способ достижения своей цели - каким образом, зависит от того, что именно является целью (например, вы можете использовать INotifyPropertyChanged
, чтобы обнаружить, что свойство установлено; или вы можете прослушать событие, которое запускается позжев жизни визуального и получить значения оттуда).