Я моделирую прикрепленный шаблон команды после AttachedCommandBehavior library here. Моя кнопка выглядит следующим образом:WPF - Freezable в стиле кнопки, не наследующей DataContext
<Button>
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="vms:Attached.Behaviors">
<Setter.Value>
<vms:Behaviors>
<vms:Behavior Event="Click"
Command="{Binding ClickCommand}" />
</vms:Behaviors>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
Все прекрасно работает, но когда сеттер на Behavior
выполняется, команда null
.
Поведение - это Freezable
, а поведение - FreezableCollection<Behavior>
. Он просто не наследует DataContext от Button.
С другой стороны, это работает правильно:
<Button>
<vms:Attached.Behaviors>
<vms:Behavior Event="Click" Command="{Binding ClickCommand}" />
</vms:Attached.Behaviors>
</Button>
К сожалению, я не могу сделать это таким образом, потому что мне нужно мишени возбуждал ListViewItem
с с использованием ItemContainerStyle
.
Есть ли способ получить DataContext в стиле?
Ваша ссылка не действительна. Можете ли вы отредактировать и исправить, пожалуйста? – Robaticus
Упс, теперь исправлено. – Snea
Я не совсем понимаю, как ваши 'vms: Attached.Behaviors' сопоставляются с этой библиотекой. Я могу найти только такие вещи, как 'CommandBehaviorCollection.Behaviors' и т. Д., Поэтому я не могу воспроизвести –