Можно ли как то разделить большой XAML-код на несколько файлов-представлений? Я даже где то это видел уже, т.е. делается для каждого представления UserControl. Но самое главное что будет с биндингом? Потому что если указывать одну и ту же ViewModel в качестве DataContext-а везде, то все равно же будет для каждого представления создаваться новый Instance... А нельзя как то как бы перехватить родительский инстанс DataContext-а?
используйте класс ContentControl в xaml главного окна/контрола, в который биндите свои UserControl (например mainViewModel.SelectedControl = new MyUserControl()). DataContext перебрасывается сам, необходимо установить только у главного окна/контрола