C# / 构造函数参数属性

发布于 2024-10-30 02:00:33 字数 194 浏览 3 评论 0原文

我一直在编写一些类,这些类将在窗口的 XAML 定义中使用。我记得使用了一个名为 - AFAIR - ConstructorParameter 的属性,它通知 XAML 解析器,与此属性对应的某些 XML 属性应被视为构造函数参数而不是属性设置器。

我在互联网上来回搜索,但找不到该属性属于哪个程序集。有人可以帮忙吗?

最好的问候——斯普克。

I've been writing some classes, that will be used inside window's XAML definition. I recall using an attribute called - AFAIR - ConstructorParameter, which informed XAML parser, that certain XML attributes corresponding to this property shall be treated as constructor parameters rather than property setters.

I've searched the Internet back and forth and I cannot find, which assembly this attribute belongs to. Can anyone help?

Best regards -- Spook.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

树深时见影 2024-11-06 02:00:33

通常,您希望有一个默认构造函数和一个用于额外值的属性。

我在 wpfwiki 上找到了这篇文章
...

典型的 XAML 声明性语法
总是最终使用创建对象
他们的默认构造函数。大部分的
时间,这不是问题。然而,
有些类的构造函数采用
某些参数,或者根本不
有一个默认构造函数。在这些
情况下,仍然可以申报
它们在 XAML 中使用
ObjectDataProvider 类。这
以下销售点系统代码
片段显示了这样的声明
Window.Resources 部分。

<Window x:Class="WindowsApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:system="clr-namespace:System" 
        Title="ObjectDataProvider Sample"
        Height="300"
        Width="300"
    >
   <Window.Resources>
      <ObjectDataProvider ObjectType="{x:Type CornerRadius}"
                          x:Key="MyCornerRadius">
         <ObjectDataProvider.ConstructorParameters>
            <system:Double>10.5</system:Double>
         </ObjectDataProvider.ConstructorParameters>
      </ObjectDataProvider>
   </Window.Resources>

   <Grid>
      <TextBlock Text="{Binding Source={StaticResource MyCornerRadius}, Path=TopLeft}"/>
   </Grid>
</Window>

Generally you would want to have a default constructor and a property for your extra value.

I found this article on wpfwiki.
...

The typical XAML declarative syntax
always ends up creating objects using
their default constructor. Most of the
time, this is not a problem. However,
some classes have constructors taking
certain parameters, or simply don't
have a default constructor. In these
cases, it is still possible to declare
them in XAML using the
ObjectDataProvider class. The
following point of sale system code
snippet shows such a declaration in
the Window.Resources section.

<Window x:Class="WindowsApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:system="clr-namespace:System" 
        Title="ObjectDataProvider Sample"
        Height="300"
        Width="300"
    >
   <Window.Resources>
      <ObjectDataProvider ObjectType="{x:Type CornerRadius}"
                          x:Key="MyCornerRadius">
         <ObjectDataProvider.ConstructorParameters>
            <system:Double>10.5</system:Double>
         </ObjectDataProvider.ConstructorParameters>
      </ObjectDataProvider>
   </Window.Resources>

   <Grid>
      <TextBlock Text="{Binding Source={StaticResource MyCornerRadius}, Path=TopLeft}"/>
   </Grid>
</Window>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文