Атрибут C # / ConstructorParameter - PullRequest
       10

Атрибут C # / ConstructorParameter

0 голосов
/ 06 апреля 2011

Я писал некоторые классы, которые будут использоваться внутри определения XAML окна. Напомню, используя атрибут с именем - AFAIR - ConstructorParameter, который информировал синтаксический анализатор XAML, что определенные атрибуты XML, соответствующие этому свойству, должны рассматриваться как параметры конструктора, а не как установщики свойств.

Я искал в Интернете взад-вперед и не могу найти, к какой сборке относится этот атрибут. Кто-нибудь может помочь?

С наилучшими пожеланиями - Spook.

1 Ответ

2 голосов
/ 06 апреля 2011

Как правило, вы хотите иметь конструктор по умолчанию и свойство для вашего дополнительного значения.

Я нашел эту статью на 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...