如何在DataTemplate中绑定DataGrid.SelectedItem

时间:2011-04-18 23:54:31

标签: silverlight-4.0

希望它不是重复的。我正在使用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>

1 个答案:

答案 0 :(得分:1)

如何在视图模型中添加属性“MySelectedItem”(您在其中定义EditCommand)并将其绑定到datagrid的selectedItem。

<sdk:DataGrid x:Name="MyDataGrid" SelectedItem="{Binding MySelectedItem, Mode=TwoWay}" SelectedItem="{Binding MySelectedItem}">

然后你可以做

CommandParameter="{Binding MySelectedItem}"