У меня есть пользовательский элемент управления со следующим DP:
public FrameworkElement NoResultContent
{
get { return (FrameworkElement)GetValue(NoResultContentProperty); }
set { SetValue(NoResultContentProperty, value); }
}
public static readonly DependencyProperty NoResultContentProperty =
DependencyProperty.Register("NoResultContent", typeof(FrameworkElement), typeof(AdvancedAutoCompleteBox), new PropertyMetadata(null));
ControlTemplate моего пользовательского элемента управления показывает этот DP в ContentControl:
<ContentControl Content="{TemplateBinding NoResultContent}" />
Используется для представления произвольных функций:
<Controls:AdvancedAutoCompleteBox
x:Name="Box"
ItemsSource="{Binding Persons}"
SelectedItem="{Binding SelectedPerson}"
Watermark="Search here">
<Controls:AdvancedAutoCompleteBox.NoResultContent>
<StackPanel>
<Button
Content="Add by ICommand"
Command="{Binding AddPerson}" />
<Button
x:Name="AddPerson"
Content="Add by Caliburn" />
</StackPanel>
</Controls:AdvancedAutoCompleteBox.NoResultContent>
</Controls:AdvancedAutoCompleteBox>
Привязка команд к ICommand работает просто отлично. Купить почему не работает с Caliburn.Micro?
Я также попытался присоединить контекст ко второй кнопке вручную с помощью cal: Bind.Model