wpf中mvvm模式下DataGrid绑定命令的问题

在一个DataGrid里,设置一个选择列,全由checkBox组成,列头上也设置一个ChecBox,如果选择列头上的那个CheckBox,所有行的那个CheckBox也就... 在一个DataGrid里,设置一个选择列,全由checkBox组成,列头上也设置一个ChecBox,如果选择列头上的那个CheckBox,所有行的那个CheckBox也就会跟着被选中,反之亦然。代码:
<DataGridTemplateColumn DataGridColumn.Width="34" DataGridColumn.IsReadOnly="True">
<DataGridColumn.Header>
<CheckBox HorizontalAlignment="Center" VerticalAlignment="Center" IsChecked="{Binding Path=DataContext.IsLYAllSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGrid}}}" Command="{Binding Path=DataContext.LYSelectAllCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGrid}}}"/>
</DataGridColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox HorizontalAlignment="Center" VerticalAlignment="Center" IsChecked="{Binding Path=IsSelected, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>

在正常情况下,该功能呢是可以正常实现的。但是现在出现了一个问题,如果这个DataGrid是放在一个TabControl里,如果是放在默认页里,就是一运行就会显示的那一页里,正常,但如果是放在别的页里,需要在运行后靠操作者来选择显示的页里,这个命令无法绑定上,不会执行命令,在网上也查了一些资料,但还是没有解决这个问题,请各位高手帮忙解决,多谢
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
若以下回答无法解决问题,邀请你更新回答
阳光的雷咩咩
2015-03-21 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7766万
展开全部
大概是bingding的DataContex发生了变化,可以用RelativeSource来寻找下,可否共享源码来调试?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式