如何在DataTemplate中绑定DataGrid.SelectedItem

问题描述

| 希望不是dup。我正在使用Silverlight 4。 我有一个viewmodel MyVM绑定到数据网格MainDataGrid的集合MyProjects。 我也有一个RowDetailstemplate来显示几个按钮。 我在这些按钮上具有Command绑定。命令绑定Command = \“ {Binding Path = EditCommand} \”似乎有效,但是我无法使CommandParameter绑定正常工作。元素名称是否在DataTemplate内部工作?通过DataTemplate内部的CommandParameter绑定传递SelectedItem / SelectedDaTarow的最佳方法是什么? 谢谢你的帮助。
        <sdk:DataGrid x:Name=\"MainDataGrid\" AutoGenerateColumns=\"False\" DataContext=\"{StaticResource MyVM}\" ItemsSource=\"{Binding MyProjects}\" RowDetailsVisibilityMode=\"VisibleWhenSelected\">

            <sdk:DataGrid.RowDetailstemplate>
                <DataTemplate>
                    <StackPanel Background=\"Ivory\" Orientation=\"Horizontal\">
                        <Button Style=\"{StaticResource DataGridRowDetailsButtonStyle}\"
                                Command=\"{Binding Path=EditCommand}\" 
                                CommandParameter=\"{Binding ElementName=MainDataGrid,Path=SelectedItem}\">Edit</Button>

解决方法

如何在视图模型(定义EditCommand的地方)中添加属性\'MySelectedItem \'并将其绑定到数据网格的selectedItem。
<sdk:DataGrid x:Name=\"MyDataGrid\" SelectedItem=\"{Binding MySelectedItem,Mode=TwoWay}\" SelectedItem=\"{Binding MySelectedItem}\">
那么你可能可以做
CommandParameter=\"{Binding MySelectedItem}\"