Как объяснено в этом блоге , событие Loaded вызывается, когда элемент управления должен быть визуализирован (т.е. добавлен в визуальное дерево).
Существует несколько элементов управления, которыезаставить ваш контроль загружаться / выгружаться несколько раз.Например, нативный WPF TabControl отображает только содержимое выбранной вкладки.Таким образом, при выборе новой вкладки содержимое ранее выбранной вкладки выгружается.Если вы вернетесь к ранее выбранной вкладке, то ее содержимое будет перезагружено.
Обходной прием - использовать логическое значение, чтобы указать, инициализировали ли вы уже свой элемент управления, как предлагали другие.Кроме того, вместо этого вы можете использовать событие Initialized .