在Silverlight 4的Datagrid上实现双击事件

4

有没有大佬能提供一个实现Prism中“命令模式”的示例,应用于Silverlight 4.0 DataGrid的双击事件上?

我尝试了以下方法:

<data:DataGrid x:Name="dgUserRoles" AutoGenerateColumns="False" Margin="0" Grid.Row="0" ItemsSource="{Binding Path=SelectedUser.UserRoles}" IsReadOnly="False">
    <data:DataGrid.Columns>
        <data:DataGridTemplateColumn Header="">
            <data:DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <Button Width="20" Height="20" Click="Button_Click" Command="{Binding EditRoleClickedCommand}" CommandParameter="{Binding SelectedRole}" />
                </DataTemplate>
            </data:DataGridTemplateColumn.CellTemplate>
        </data:DataGridTemplateColumn>
        <data:DataGridTextColumn Header="Role Name" Binding="{Binding RoleName}" />
        <data:DataGridTextColumn Header="Role Code" Binding="{Binding UserroleCode}" IsReadOnly="True"/>
        <data:DataGridCheckBoxColumn Header="UDFM Managed" Binding="{Binding RoleIsManaged}" IsReadOnly="True" />
        <data:DataGridCheckBoxColumn Header="UDFM Role Assigned" Binding="{Binding UserroleIsUdfmRoleAssignment}" IsReadOnly="True" />
        <data:DataGridTextColumn Header="Source User" Binding="{Binding SourceUser}" IsReadOnly="True" />
    </data:DataGrid.Columns>
</data:DataGrid>

您看到,我尝试在那里连接命令,但它没有在我的视图模型中触发事件。

正在寻找一个好的替代方案。


我在这里没有看到任何双击代码。 - Gabe
我也想知道答案,最好的实现双击的方法是什么? - Darko
1个回答

0

首先,Button.Command 不仅适用于双击操作,单击同样有效。

您需要进行如下更改:ElementName=dgUserRoles, Path=DataContext.

 Command="{Binding ElementName=dgUserRoles, Path=DataContext.EditRoleClickedCommand}"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接