Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Возможно ли выполнение кода в разметке страницы


Автор: Stas123 12.7.2011, 16:45
Возможно ли выполнение кода в разметке страницы?
у меня есть список объектов, я бы хотел вывести разность их свойств (Volume - Balance) в окно.
Как можно осуществить нечто подобное?
Код

<GridViewColumn Width="70" Header="Volume" DisplayMemberBinding="{Binding Path=Volume - Balance}" />

Я не могу изменить структуру объекта и ввести доп. свойство.

Автор: Экскалупатор 12.7.2011, 17:23
Stas123, разметка она вообще то предназначена для разметки. и в ней не должно быть ничего лишнего... в чем сложность сделать это в коде?

Автор: Rohoss 12.7.2011, 18:55
Stas123, есть секция Code 
Код

<Button  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
         x:Class="Tes"
         Width="200" Height="50"  Content="Hello Click Me Please !" Click="Click_This" >
    <x:Code>
        <![CDATA[
  
          void Click_This(object sender, RoutedEventArgs e)
          {
          MessageBox.Show("XAML IS COOL !");
          }
  
        ]]>   
    </x:Code>
</Button>


Неужели было сложно сделать такой http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=wpf+code+in+xaml?

Автор: jonie 13.7.2011, 00:18
а можно написать TypeConverter который будет исполнять код, переданный ему в строке ...

Автор: Stas123 13.7.2011, 08:57
Цитата(Экскалупатор @  12.7.2011,  17:23 Найти цитируемый пост)
Stas123, разметка она вообще то предназначена для разметки. и в ней не должно быть ничего лишнего... в чем сложность сделать это в коде? 

Я не могу сделать этого в коде. мужно будет создавать ещё одну коллекцию и посотоянно перегонять в неё объекты и обрабатывать их.


Rohoss, спасибо.


Цитата(jonie @  13.7.2011,  00:18 Найти цитируемый пост)
а можно написать TypeConverter который будет исполнять код, переданный ему в строке ... 

Пока не умею.
Это будет быстрее чем выполнение секции <x:Code>?

Автор: ДобренькийПапаша 13.7.2011, 09:44
Цитата(Stas123 @  13.7.2011,  08:57 Найти цитируемый пост)
Я не могу сделать этого в коде. мужно будет создавать ещё одну коллекцию и посотоянно перегонять в неё объекты и обрабатывать их.

Эм, что-то это на ерунду какую-то похоже, если честно. Скорее всего, вы чего-то накосячили. А разметка для того и создана, чтобы PL от BL отделить наглухо (ну не совсем, но почти).

Автор: Stas123 13.7.2011, 10:19
Проблема решена, обошлись без кода в WPF.

Автор: Экскалупатор 13.7.2011, 11:31
так расскажи как, вдруг кто то будет решать похожую задачу.

Автор: Stas123 13.7.2011, 11:37
это никак не поможет другому человеку ,я изменяю свойство объекта.
Создатели класса оставили его открытым для установки.

Автор: Kefir 13.7.2011, 13:42
Stas123, в следующий раз или оборачивай другим классом или пиши IValueConverter-ом. То что предложил Rohoss - весьма экстравагантно (и в качестве развлечений вполне себя оправдывает smile), но ни дай бог такое увидеть в работе - руки бы поотрывал smile

Автор: ДобренькийПапаша 13.7.2011, 14:11
Цитата(Kefir @  13.7.2011,  13:42 Найти цитируемый пост)
но ни дай бог такое увидеть в работе - руки бы поотрывал

Если сотрудник такое будет на полном серьёзе писать, то можно и увольнять, в принципе.

Автор: Rohoss 13.7.2011, 14:15
Цитата(Kefir @  13.7.2011,  13:42 Найти цитируемый пост)
 То что предложил Rohoss - весьма экстравагантно (и в качестве развлечений вполне себя оправдывает ), но ни дай бог такое увидеть в работе - руки бы поотрывал  

Так при чём тут предложил? Человек задал конкретный вопрос, 
Цитата(Stas123 @  12.7.2011,  16:45 Найти цитируемый пост)
Возможно ли выполнение кода в разметке страницы?

я дал ему конкретный ответ. Это ещё вовсе не значит что я считаю правильным так делать smile , но человек спросил - я ответил smile 

Автор: Kefir 13.7.2011, 14:27
Rohoss, да всё понятно. Я просто сделал ремарку чтобы вдруг кто не принял твой ответ как самый правильный smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)