次のエラーが表示されます。
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
座っています。の(座っている)は 内のプロパティです。特定の行を表示するかどうかを示す変数があります。そのバインディングはなぜ失敗しますか?DataContext
UserControl
DataContext
DataGrid
UserControl
ViewModel
ViewModel
ここに私の財産:
private bool _isVisible=false;
public bool IsVisible
{
get { return _isVisible; }
set
{
_isVisible= value;
NotifyPropertyChanged("IsVisible");
}
}
関数に関して言えばNotifyPropertyChanged
、PropertyChanged
イベント null - 彼がバインディングの登録に失敗したことを意味します。
機能するような方法でより多くのバインディングがあることに注意してくださいViewModel
。以下に例を示します。
Command="{Binding DataContext.Cmd,
RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"