parece que no has leido la ayuda.
Claro que no entrará en el if durante la carga del componente en tiempo de ejecución, precisamente por eso hay que ponerlo... la propiedad se asignará por primera vez en el método Loaded. Luego, si el valor de la propiedad cambia (despues de cargados todos los componentes) si que entrará en el if en el SetDataBase, con lo que funcionará normalmente.
hasta luego, y por favor, lee la ayuda de Loaded y de csLoading (en ComponentState).