在Silverlight 4 Datagrid上实现双击事件 [英] Implementing the double-click event on Silverlight 4 Datagrid

查看:167
本文介绍了在Silverlight 4 Datagrid上实现双击事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

任何好的灵魂都有一个例子来实现在Silverlight 4.0 DataGrid中双击事件由Prism引入的命令模式?



我尝试过以下操作:

 < data:DataGrid x:Name =dgUserRolesAutoGenerateColumns =FalseMargin =0Grid.Row = 0ItemsSource ={Binding Path = SelectedUser.UserRoles}IsReadOnly =False> 
< data:DataGrid.Columns>
< data:DataGridTemplateColumn Header =>
< data:DataGridTemplateColumn.CellTemplate>
< DataTemplate>
< Button Width =20Height =20Click =Button_ClickCommand ={Binding EditRoleClickedCommand}CommandParameter ={Binding SelectedRole}/>
< / DataTemplate>
< / data:DataGridTemplateColumn.CellTemplate>
< / data:DataGridTemplateColumn>
< data:DataGridTextColumn Header =Role NameBinding ={Binding RoleName}/>
< data:DataGridTextColumn Header =Role CodeBinding ={Binding UserroleCode}IsReadOnly =True/>
< data:DataGridCheckBoxColumn Header =UDFM ManagedBinding ={Binding RoleIsManaged}IsReadOnly =True/>
< data:DataGridCheckBoxColumn Header =UDFM Role AssignedBinding ={Binding UserroleIsUdfmRoleAssignment}IsReadOnly =True/>
< data:DataGridTextColumn Header =Source UserBinding ={Binding SourceUser}IsReadOnly =True/>
< / data:DataGrid.Columns>
< / data:DataGrid>

正如你所看到的,我尝试将命令挂在那里,而不是在我的查看模型



寻找一个很好的选择。

解决方案

,Button.Command不用于双击。它也可以与单击一起工作。



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

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


Any good soul have an example of implementing the "Command Pattern" introduced by Prism on a double click event in a Silverlight 4.0 DataGrid?

I tried the following:

<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>

As you see I did try to hook up the Command there and it is not firing the event in my View Model.

Looking for a good alternative.

解决方案

First, Button.Command is not for double-click. It will work with single click as well.

You need to change like that. ElementName=dgUserRoles, Path=DataContext.

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

这篇关于在Silverlight 4 Datagrid上实现双击事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆