Одна вещь, которую вы можете сделать, это создать версию хранилища (или другой объект) во время разработки, которую вы будете использовать во время выполнения.Простой подход, который я использую на регулярной основе, выглядит следующим образом.
в App.xaml:
<Application ...>
<Application.Resources>
<local:MyClass x:key="DesignData"/>
</Application.Resources>
</Application>
, тогда в конструкторе классов вы можете определить, что находитесь в режиме разработки, и заполнитьданные соответственно:
public class MyClass
{
public MyClass()
{
bool isInDesign = DesignerProperties.GetIsInDesignMode(new DependencyObject());
if (isInDesign)
{
// Load your XML + other setup routines.
}
// Normal ctor code.
}
}
Наконец, используйте этот элемент и его данные в качестве контекста.
<Window ...>
<Grid d:DataContext="{StaticResource DesignData}">
...
</Grid>
</Window>
Это, вероятно, самый простой подход, который вы можете использовать для получения сложных данных времени проектирования,Конечно, вам может понадобиться использовать подкласс MyClass или другие подходы для очень сложных сценариев, но, похоже, вы знаете достаточно, чтобы справиться с этим.Исходя из личного опыта, вы можете использовать этот подход для создания проектных данных для любого состояния программы, о котором вы только можете подумать, и вы можете даже пойти так далеко, чтобы извлечь оперативные данные из БД, если хотите.Конечно, чем раньше вы начнете думать о данных проектирования в своем приложении, тем легче будет реально заставить его работать.