Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XAML компонент 
:(
    Опции темы
shtuceron
Дата 28.11.2011, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 17.2.2008

Репутация: нет
Всего: нет



Здравствуйте.

Возникла одна задача, которая поставила меня в тупик.

Имеется ли возможность при создании XAML компонента каким нибудь образом добавить в него переменные, заполнение которых происходило при инициализации этого компонента в главной форме?

Пример:

Код

<my:сomponent x:Name="сomponent1" Height="38" Width="175">
  <my:сomponent.property>Property1<my:сomponent.property>
  <my:сomponent.property>Property2<my:сomponent.property>
</my:сomponent>


Например, property это свойство в классе компонента, например какой нибудь список или массив с заранее определенной размерностью, которое при инициализации компонента заполнилось значениями Property1, Property2.
PM MAIL WWW   Вверх
shtuceron
Дата 28.11.2011, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 17.2.2008

Репутация: нет
Всего: нет



Итак, практически получилось...

Делаю так:

Код

<component x:Name="component1" Height="38" Width="175">
  <component.exampleArrayTag>
    <x:Array Type="system:String">
      <system:String>Line 1</system:String>
      <system:String>Line 2</system:String>
      <system:String>Line 3</system:String>
      <system:String>Line 4</system:String>
    </x:Array>
  </my:component.exampleArrayTag>
</my:component>


Код

public string[] exampleArray;

public string[] exampleArrayTag
{
  set
  {
     exampleArray = new string[value.Length];
     exampleArray  = value;
  }
}


И вроде бы все работает (компилируется и выполняется), только дизайнер главной формы перестал отображаться и выдает вот такую ошибку:

Код

Error    13    A value of type 'ArrayExtension' cannot be added to a collection or dictionary of type 'String[]'


Кто-нибудь сталкивался с такой проблемой?
PM MAIL WWW   Вверх
shtuceron
Дата 28.11.2011, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 17.2.2008

Репутация: нет
Всего: нет



Ребята, спасибо всем кто пытался помочь!

Решил задачу следующим образом.

Вспомним что мы имеем:
1. Главная форма.
2. Созданный контрол.


Код главной формы:

Код

<Window.Resources>
  <x:Array Type="system:String" x:Key="arrayOfItems">
    <system:String>Item_1</system:String>
    <system:String>Item_2</system:String>
    <system:String>Item_3</system:String>
  </x:Array>
</Window.Resources>

...

<сomponent x:Name="сomponent1" Height="38" Width="175" itemStringArrayProperty="{StaticResource arrayOfItems}" />


Код компонента:
Код

private string[] itemStringArray;

public string[] itemStringArrayProperty
{
  set
  {
      itemStringArray = new string[value.Length];

      itemStringArray = value;
   }
}


И все, теперь в переменной itemStringArray содержится массив, который не привязан к компоненту.

Это сообщение отредактировал(а) shtuceron - 28.11.2011, 13:39
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.3455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.