在Silverlight 4 Datagrid上实现双击事件

时间:2010-03-13 01:47:14

标签: events silverlight-4.0

任何一个好的灵魂都有一个实现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>

如你所见,我确实试图在那里连接Command,并且它没有在我的View模型中触发事件。

寻找一个好的选择。

1 个答案:

答案 0 :(得分:0)

首先,Button.Command不是双击。它也可以单击一下。

你需要改变那样。 ElementName = dgUserRoles,Path = DataContext。

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