2011-04-06 50 views
0

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

我已经在互联网上来回搜索,找不到该属性属于哪个程序集。谁能帮忙?

此致敬礼 - Spook。

回答

2

通常你会想要一个默认的构造函数和一个属性来获得额外的值。

我在wpfwiki上找到了this article。 ...

典型的XAML声明语法 最终总是使用 其默认的构造函数创建对象。大部分是 的时间,这不是问题。然而, 某些类具有构造函数,其中某些参数取值为 ,或者根本没有 具有默认构造函数。在这些 的情况下,仍然可以使用ObjectDataProvider类在XAML中声明 。以下 销售点系统代码 代码段在 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> 
+0

我发现了我正在搜索的属性,它是ConstructorArgument。然而,我很快意识到,这个id并没有做到我所猜测的那样,而且无论如何我将实现无参数的构造函数 - 正如你所提到的那样。感谢帮助! – Spook 2011-04-07 06:18:38