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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> xaml как ресурс с обработкой событий 
V
    Опции темы
Rohoss
Дата 2.8.2011, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix

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



Цитата(RastaDja @  2.8.2011,  08:41 Найти цитируемый пост)
Rohoss, ваш пример хороший, но он действует внутри сборки. Как подключать модули не зная имен типов внутри модуля - это не понятно.

Тут тебе пригодится MEF. Как появится время приведу пример.

Цитата(RastaDja @  2.8.2011,  08:41 Найти цитируемый пост)
К тому-же, не хочется перекомпилировать сборку каждый раз, и под каждого закажкика, когда нужно добавить одно или два окна. 

Ну не собирая всё равно в текстовых файлах ничего не сделаешь. Или попробуй через IronPython, там вроде такое можно делать.


--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
RastaDja
Дата 2.8.2011, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Rohoss @  2.8.2011,  11:00 Найти цитируемый пост)
Или попробуй через IronPython, там вроде такое можно делать. 

   Мне кажется - это один из лучших вариантов. Придется затратить время на изучение. Единственно - что не понятно - писать приложение на питоне, или внедрить скрипт машину внутрь приложения? Так, как не сталкивался с этим, тяжело представить, но кажется это оптимально, например, когда программист приедет сразу в компанию закажчика, и поправит (новый напишет) код, не имея никаких средств разработки.
   Если вы использовали IronPython подскажите с чего начать, или поделитесь ссылками.
   Спасибо

Добавлено через 1 минуту и 37 секунд
Цитата(Rohoss @  2.8.2011,  11:00 Найти цитируемый пост)
Тут тебе пригодится MEF. Как появится время приведу пример.

   Да, я не против посмотреть на это, хотя пока не разобрался что за технология


--------------------
The more closely you look at one thing, the less closely can you see something else.
PM MAIL   Вверх
Kefir
Дата 2.8.2011, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



Если хочешь красоты и без Visual Studio, то пишешь маленькую утилиту, которая берет на вход xaml + cs и даёт на выходе dll. А внутри динамически эти dll-ки подгружает. Хоть через MEF, хоть сам напиши. Всего делов. Туториалы MEF есть в свободном доступе на MSDN, туториалов по самостоятельной подгрузке dll в интернете как грязи (напиши хотя бы plugin architecture или load dll c# в гугле).

Если не хочешь ничего компилировать - ищи скриптовый язык, который под это заточен.
PM MAIL WWW Skype   Вверх
RastaDja
Дата 3.8.2011, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Kefir @  2.8.2011,  21:41 Найти цитируемый пост)
Если не хочешь ничего компилировать - ищи скриптовый язык, который под это заточен. 

   Посоветовали PowerShell. В принципе выглядит неплохо. Структура файла получается такого типа
Код

<?xml version="1.0" encoding="utf-8" ?> 
   <construktor xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <xaml>
         <Window Name="MainWin" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="System.Windows.Window" Title="newresearch" Height="320" Width="640">
            <Grid Name="ContentGrid">
               <StackPanel>
                  <Button Name="button1">Действие1</Button>
                  <Button Name="button2">Действие2</Button>
               </StackPanel>
            </Grid>
         </Window>
      </xaml> 
      <code>
         <script Name="button1_Click">
            $App = New-Object -ComObject DrApp.Application
            $App.Show
         </Script> 
      </code>
  </construktor>


внутри класса C# парсим наше окно от корня, и подписываем наши элементы на события.
Ну и пример обработки
Код

//  общий обработчик для всех кнопок
private void Buttons_Click(object sender, RoutedEventArgs e)
{
   Button refButton = (Button)sender;
   string FuncName = String.Format("{0}_{1}", refButton.Name, "Click");
   Pipeline pl = runspace.CreatePipeline(FuncName);
   try
   {
      pl.Invoke();
   }
   catch (Exception ex)
   {
      MessageBox.Show(ex.Message);
   }
}

   Как то так. Еще раз спасибо всем, кто принял участие в обсуждении.


--------------------
The more closely you look at one thing, the less closely can you see something else.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




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


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

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