任何好的灵魂都有在 Silverlight 4.0 DataGrid 中的双击事件上实现 Prism 引入的“命令模式”的示例?
我尝试了以下方法:
<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>
如您所见,我确实尝试在那里连接命令,但它没有在我的 View 模型中触发事件。
寻找一个好的替代品。
最佳答案
首先,Button.Command 不适用于双击。它也适用于单击。
你需要像那样改变。 元素名称=dgUserRoles,路径=DataContext。
Command="{Binding ElementName=dgUserRoles, Path=DataContext.EditRoleClickedCommand}"
关于events - 在 Silverlight 4 Datagrid 上实现双击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2436945/