Expression Blend НЕ загружает код позади. На самом деле он просто загружает XAML. Вы всегда можете создать объекты Command в вашем UserControl.Resources в XAML. Если вы создадите что-то в коде позади и ваш XAML ссылается на него, Expression Blend не сможет его найти, поскольку он просто анализирует XAML.
Прежде чем вы скажете, что Blend не работает, это сделано специально. Команды и аналогичные элементы должны быть инкапсулированы в логику вашего дизайна / макета, которая должна быть в вашем XAML. Если у вас есть пользовательские команды или пользовательские действия, все еще довольно легко сделать их доступными в вашем XAML.
Вот как я это сделал для своего приложения:
У меня есть файл класса C # с именем Command.cs в пространстве имен MyApp.Commands
public static class AppCommands
{
public static RoutedCommand SendData { get { return _sendDataCommand; } }
private static RoutedCommand _sendDataCommand = new RoutedCommand
(
"Send Data",
typeof(AppCommands),
new InputGestureCollection()
{
new KeyGesture(Key.N, ModifierKeys.Alt)
}
)
}
Тогда ваш XAML будет включать ...
<UserControl x:Class="MyApp.Window"
xmlns:c="clr-namespace:TBL.SFDC.Commands">
<UserControl.Resources>
<CommandBinding Command="c:AppCommands.SendData" Executed="SendData_Executed" CanExecute="SendData_CanExecute" />
<UserControl.Resources>
</UserControl>