WPF 在 Style 中将事件转化为命令.

某些情况下需要通过样式将 View 中控件的事件转接到 ViewModel 中的 Command 上,且不想重写模版.

可以使用 GitHub - hellzerg/optimizer: The finest Windows Optimizer

只需要在 Style 中使用 Setter 即可达到目的.

例:

<Style TargetType="{x:Type Border}">
    <Setter Property="local:CommandBehaviorCollection.StyleBehaviors">
        <Setter.Value>
            <local:BehaviorBindingCollection>
                <local:BehaviorBinding 
              
Event="MouseRightButtonDown"
              Command
="{Binding SomeCommand}"
              CommandParameter
="A Command on MouseRightButtonDown"/> </local:BehaviorBindingCollection> </Setter.Value> </Setter> </Style>

 

posted @ 2022-12-06 11:24  xiejiang  阅读(153)  评论(0编辑  收藏  举报