【发布时间】:2013-03-07 19:36:00
【问题描述】:
我收到此错误:
Cannot find source for binding with reference 'RelativeSource FindAncestor,
AncestorType='System.Windows.Controls.UserControl', AncestorLevel='1''
在这个绑定上:
<DataGridTemplateColumn Visibility="{Binding DataContext.IsVisible,
RelativeSource={RelativeSource AncestorType={x:Type UserControl}},
Converter={StaticResource BooleanToVisibilityConverter}}">
ViewModel 在UserControl 中以DataContext 的身份出现。 DataGrid 的DataContext(位于UserControl)是ViewModel 中的属性,在ViewModel 我有一个变量表示是否显示某一行,它的绑定失败,为什么?
这是我的财产:
private bool _isVisible=false;
public bool IsVisible
{
get { return _isVisible; }
set
{
_isVisible= value;
NotifyPropertyChanged("IsVisible");
}
}
说到函数:NotifyPropertyChanged PropertyChanged event null - 表示他注册绑定失败。
应该注意的是,我有更多绑定到ViewModel 的方式有效,这里是一个例子:
Command="{Binding DataContext.Cmd,
RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
【问题讨论】: