gpt4 book ai didi

c# - 只能在 DependencyObject 的 DependencyProperty 上设置 'Binding'

转载 作者:IT王子 更新时间:2023-10-29 03:53:30 25 4
gpt4 key购买 nike

从基于 TextBox 的自定义控件中,我创建了一个名为 Items 的属性,方法如下:

public class NewTextBox : TextBox
{
public ItemCollection Items { get; set; }
}

在 XAML 中使用自定义控件时,我无法绑定(bind)该属性,因为它会引发异常“'绑定(bind)'只能在 DependencyObject 的 DependencyProperty 上设置。”。

如何解决这个异常?

最佳答案

作为旁注,还值得注意的是,如果您在对象之间复制和粘贴而忘记更改第二个 typeof(Object) 语句,则会出现这些绑定(bind)错误。

我整整一个小时都想不通为什么我会收到这个错误,因为一切似乎都已定义且正确无误。我已将我的属性移到用户控件中,因为我想从一个集合变成一个列表。因此:

public static readonly DependencyProperty FoldersProperty = DependencyProperty
.Register("Folders", typeof(OutlookFolders), typeof(MainWindow),
new FrameworkPropertyMetadata(new OutlookFolders()));

public OutlookFolders Folders
{
get { return GetValue(FoldersProperty) as OutlookFolders; }
set { SetValue(FoldersProperty, value); }
}

应该变成:

public static readonly DependencyProperty FoldersProperty = DependencyProperty
.Register("Folders", typeof(OutlookFolders), typeof(SavedFolderControl),
new FrameworkPropertyMetadata(new OutlookFolders()));

public OutlookFolders Folders
{
get { return GetValue(FoldersProperty) as OutlookFolders; }
set { SetValue(FoldersProperty, value); }
}

在我进行此更改之前,我一直收到错误消息:不能在“SavedFolderControl”类型的属性“文件夹”上设置“绑定(bind)”。 “绑定(bind)”只能在 DependencyObject 的 DependencyProperty 上设置。

关于c# - 只能在 DependencyObject 的 DependencyProperty 上设置 'Binding',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11435781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com