将 EventToCommand 添加到 xaml 中的每一行

发布于 2024-09-07 13:29:54 字数 1013 浏览 7 评论 0原文

有没有办法将 DoubleClickEvent 添加到 xaml 中的每一行,而不是使用 datagridcontrol 的事件?

像这样的东西(此代码不起作用):

    <UserControl
        xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
        xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras"
        xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid" >
    <xcdg:UserControl.Resources>
            <Style TargetType="xcdg:DataRow">
                <i:Interaction.Triggers>
                    <i:EventTrigger EventName="MouseDoubleClick">
                        <cmd:EventToCommand Command="{Binding SelectCommand, Mode=Default}" CommandParameter="{Binding SelectedItem, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type xcdg:DataGridControl}}}" />
                    </i:EventTrigger>
                </i:Interaction.Triggers>
            </Style>
    </xcdg:UserControl.Resources>
...

Is there a way to add a DoubleClickEvent to each Row in xaml rather than using the event of the datagridcontrol?

Something like this (this code does not work):

    <UserControl
        xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
        xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras"
        xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid" >
    <xcdg:UserControl.Resources>
            <Style TargetType="xcdg:DataRow">
                <i:Interaction.Triggers>
                    <i:EventTrigger EventName="MouseDoubleClick">
                        <cmd:EventToCommand Command="{Binding SelectCommand, Mode=Default}" CommandParameter="{Binding SelectedItem, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type xcdg:DataGridControl}}}" />
                    </i:EventTrigger>
                </i:Interaction.Triggers>
            </Style>
    </xcdg:UserControl.Resources>
...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

╭ゆ眷念 2024-09-14 13:29:54

使用模板而不是样式。 (这假设 xceed datagrid 的 DataRow 是可模板化的。)

<UserControl ...>
    <UserControl.Resources>
        <ResourceDictionary>
            <DataTemplate x:Key="DataTemplateKey">
                <Grid>
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="MouseDoubleClick">
                            <cmd:EventToCommand Command="{Binding SelectCommand}" />
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                    <!-- put your row template here -->
                </Grid>
                <CheckBox Content="{Binding Path=ApplianceActionID, Converter={StaticResource LookupConverter}, ConverterParameter=ApplianceActionLookupValues}"
                          IsChecked="{Binding Path=IsSelected, Mode=TwoWay}" />
            </DataTemplate>

        </ResourceDictionary>
    </UserControl.Resources>

    <!-- UI -->

</UserControl>

Use a template instead of a style. (This assumes that the xceed datagrid's DataRow is templatable.)

<UserControl ...>
    <UserControl.Resources>
        <ResourceDictionary>
            <DataTemplate x:Key="DataTemplateKey">
                <Grid>
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="MouseDoubleClick">
                            <cmd:EventToCommand Command="{Binding SelectCommand}" />
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                    <!-- put your row template here -->
                </Grid>
                <CheckBox Content="{Binding Path=ApplianceActionID, Converter={StaticResource LookupConverter}, ConverterParameter=ApplianceActionLookupValues}"
                          IsChecked="{Binding Path=IsSelected, Mode=TwoWay}" />
            </DataTemplate>

        </ResourceDictionary>
    </UserControl.Resources>

    <!-- UI -->

</UserControl>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文