Я пытаюсь использовать AttachedCommandBehavior V2 для преобразования событий ListBoxItem, таких как двойной щелчок, в команды, которые выполняются для модели представления.
Я хочу запускать команды для нескольких событий, это пример кода, который я пытаюсь эмулировать:
<Border Background="Yellow" Width="350" Margin="0,0,10,0" Height="35" CornerRadius="2" x:Name="test">
<local:CommandBehaviorCollection.Behaviors>
<local:BehaviorBinding Event="MouseLeftButtonDown" Action="{Binding DoSomething}" CommandParameter="An Action on MouseLeftButtonDown"/>
<local:BehaviorBinding Event="MouseRightButtonDown" Command="{Binding SomeCommand}" CommandParameter="A Command on MouseRightButtonDown"/>
</local:CommandBehaviorCollection.Behaviors>
<TextBlock Text="MouseDown on this border to execute the command"/>
</Border>
Так как я хочу применить это к ListBoxItem, я пытаюсь сделать это через стиль, выполнив:
<ListBox.ItemContainerStyle>
<Style>
<Setter Property="acb:CommandBehaviorCollection.Behaviors">
<Setter.Value>
<acb:CommandBehaviorCollection>
<acb:BehaviorBinding Event="MouseDoubleClick" Command="{Binding DataContext, RelativeSource={RelativeSource AncestorType=ListBox}}" CommandParameter="{Binding}"/>
<acb:BehaviorBinding Event="KeyUp" Command="{Binding DataContext, RelativeSource={RelativeSource AncestorType=ListBox}}" CommandParameter="{Binding}"/>
</acb:CommandBehaviorCollection>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
Но я получаю ошибку компиляции с этим кодом, который говорит error MC3089: The object 'CommandBehaviorCollection' already has a child and cannot add 'BehaviorBinding'. 'CommandBehaviorCollection' can accept only one child. Line 39 Position 11.
Также, если я закомментирую одно из BehaviorBindings, то оно компилируется, но я получаю исключение загрузки xaml во время выполнения, говорящее «Значение не может быть нулевым. Имя параметра: свойство», поэтому я не уверен, что я даже беру правильный подход.
Может ли кто-нибудь предоставить пример правильного синтаксиса для установки нескольких привязок поведения в ListBoxItem?