星想夜恋 2021-09-27 23:08 采纳率: 100%
浏览 35
已结题

wpf依赖项绑定找不到源

我在组件加载前对checkbox的isChecked属性进行了绑定

public FileControl()
        {
            RelativeSource relativeSource = new RelativeSource();
            relativeSource.Mode = RelativeSourceMode.FindAncestor;
            relativeSource.AncestorType = typeof(FileControl);
            Binding bind = new Binding() { RelativeSource=relativeSource };
            checkBox.SetBinding(FileIsCheckedIsCheckedProperty,bind);
            InitializeComponent();
            
        }

自定义依赖项:

        public Nullable<bool> FileIsChecked
        {
            get { return (Nullable<bool>)GetValue(FileIsCheckedIsCheckedProperty); }
            set { SetValue(FileIsCheckedIsCheckedProperty, value); }
        }

        // Using a DependencyProperty as the backing store for ChcckBoxIsChecked.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty FileIsCheckedIsCheckedProperty =
            DependencyProperty.Register("FileIsChecked", typeof(Nullable<bool>), typeof(FileControl), new FrameworkPropertyMetadata(false));

然后在mainwindow中运行出现错误:
CheckBox.FileIsChecked Nullable`1 找不到源: RelativeSource FindAncestor, AncestorType='FileOperator.FileControl', AncestorLevel='1'。

我在前台XAML绑定是没有问题的,可以正常访问:

<CheckBox Name="checkBox" IsChecked="{Binding IsChecked, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:FileControl}}}">
                </CheckBox>


  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月5日
    • 创建了问题 9月27日

    悬赏问题

    • ¥15 安装svn网络有问题怎么办
    • ¥15 Python爬取指定微博话题下的内容,保存为txt
    • ¥15 vue2登录调用后端接口如何实现
    • ¥65 永磁型步进电机PID算法
    • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
    • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
    • ¥15 如何处理复杂数据表格的除法运算
    • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
    • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
    • ¥15 latex怎么处理论文引理引用参考文献