希望它不是重复的。我正在使用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>
答案 0 :(得分:1)
如何在视图模型中添加属性“MySelectedItem”(您在其中定义EditCommand)并将其绑定到datagrid的selectedItem。
<sdk:DataGrid x:Name="MyDataGrid" SelectedItem="{Binding MySelectedItem, Mode=TwoWay}" SelectedItem="{Binding MySelectedItem}">
然后你可以做
CommandParameter="{Binding MySelectedItem}"