gpt4 book ai didi

wpf - 依赖属性的 CLR 包装器是否可选?

转载 作者:行者123 更新时间:2023-12-04 13:54:06 27 4
gpt4 key购买 nike

我的印象是依赖属性的 CLR 包装器在 WPF 下是可选的,并且对于在您自己的代码中进行设置很有用。

但是,我创建了一个没有包装器的 UserControl,但是一些使用它的 XAML 没有它们就无法编译:

namespace MyControlLib
{
public partial class MyControl : UserControl
{
public static readonly DependencyProperty SomethingProperty;

static MyControl()
{
SomethingProperty = DependencyProperty.Register("Something", typeof(int), typeof(MyControl));
}
}
}

XAML 用法:
<Window  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ctrl="clr-namespace:MyControlLib;assembly=MyControlLib">

<ctrl:MyControl Something="45" />

</Window>

试图编译这个给出:

错误 MC3072:XML 命名空间“clr-namespace:MyControlLib”中不存在属性“Something”。线等等位置等等。

在 MyControl.xaml.cs 中添加 CLR 包装器,例如:
public int Something
{
get { return (int)GetValue(SomethingProperty); }
set { SetValue(SomethingProperty, value); }
}

意味着它全部编译并且工作正常。

我错过了什么?

最佳答案

您可以在运行时绑定(bind)中使用不带包装器的依赖属性,但要按照您的需要设置属性,您必须具有 C# 属性以允许 xaml 编译器编译您的代码。

关于wpf - 依赖属性的 CLR 包装器是否可选?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7530954/

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