【发布时间】:2017-05-19 16:39:31
【问题描述】:
我创建了一个带有按钮的DataGridTemplateColumn。我用Command 绑定了它,但是在我点击它之后,什么也没有发生。但是,如果我将按钮移到 DataGrid 的外部,它可以正常工作。
<DataGrid AutoGenerateColumns="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding MedCards}">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding = "{Binding Id, Mode=TwoWay}"/>
<DataGridTextColumn Header="ID клиента" Binding = "{Binding Client_Id, Mode = TwoWay}"/>
<DataGridTextColumn Header="Вес" Binding = "{Binding Weight, Mode = TwoWay}"/>
<!-- <DataGridTextColumn Header="Рекомендация" Binding = "{Binding Recommend, Mode = TwoWay}"/> -->
<DataGridTemplateColumn Header="Рекомендация">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Command="{Binding Path=ShowRecommendCommand}" CommandParameter="{Binding Recommend}" Content="Посмотреть"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<!-- -->
<DataGridTextColumn Header="Рост" Binding = "{Binding Height, Mode = TwoWay}"/>
<DataGridTextColumn Header = "Проблемы" Binding = "{Binding Problems, Mode = TwoWay}"/>
<DataGridTextColumn Header = "BodyType" Binding = "{Binding BodyType, Mode = TwoWay}"/>
</DataGrid.Columns>
</DataGrid>
命令:
private RelayCommand showRecommendCommand;
public RelayCommand ShowRecommendCommand
{
get
{
return showRecommendCommand ??
(showRecommendCommand = new RelayCommand(obj =>
{
RecommendViewModel viewModel = new RecommendViewModel();
viewModel.Recommend = Convert.ToString(obj);
RecommendWindow window = new RecommendWindow();
window.Show();
}));
}
}
【问题讨论】: