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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема повторяющегося кода в разметке XAML 
:(
    Опции темы
Stas123
Дата 29.7.2011, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



у меня приложение работает с несколькими объектами, которые все имеют обшего предка.
эти объекты в процессе работы меняют своё состояние, я это вывожу на окно.
Но получится очень много дублирующего кода.
Код.
Если состояние изменилось, обновить инфу на экране
Код

private void OnStrategyPropertyChangedB(object sender, PropertyChangedEventArgs e)
        {
            Strategy strategy = (Strategy) sender;
            this.GuiAsync(() =>
                          {
                           this.B_Cons_Status.Content = strategy.ProcessState;
                           this.B_Cons_Position.Content = strategy.PositionManager.Position;
                           this.B_Cons_ID.Content = strategy.Id;
                          });
        }
        
        private void OnStrategyPropertyChangedS(object sender, PropertyChangedEventArgs e)
        {
            Strategy strategy = (Strategy) sender;
            this.GuiAsync(() =>
                          {
                           this.S_Cons_Status.Content = strategy.ProcessState;
                           this.S_Cons_Position.Content = strategy.PositionManager.Position;
                           this.S_Cons_ID.Content = strategy.Id;
                          });
        }

Отображение на экране
Код

 <Grid Margin="0,20,0,0">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="120" />
                            <ColumnDefinition Width="120" />
                            <ColumnDefinition Width="120" />
                            <ColumnDefinition Width="120" />
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                        </Grid.RowDefinitions>
                        <Label Content="Статус:" Grid.Row="0" Grid.Column="1" />
                        <Label x:Name="B_Cons_Status" Grid.Row="0" Grid.Column="2" />
                        <Label Content="Позиция:"  Grid.Row="3" Grid.Column="1" />
                        <Label x:Name="B_Cons_Position"  Grid.Row="3" Grid.Column="2" />
                        <Label Content="ID:"  Grid.Row="5" Grid.Column="1" />
                        <Label x:Name="B_Cons_ID"  Grid.Row="5" Grid.Column="2" />
                    </Grid>

                    <Grid Margin="0,20,0,0">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="120" />
                            <ColumnDefinition Width="120" />
                            <ColumnDefinition Width="120" />
                            <ColumnDefinition Width="120" />
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                        </Grid.RowDefinitions>
                        <Label Content="Статус:" Grid.Row="0" Grid.Column="1" />
                        <Label x:Name="S_Cons_Status" Grid.Row="0" Grid.Column="2" />
                        <Label Content="Позиция:"  Grid.Row="3" Grid.Column="1" />
                        <Label x:Name="S_Cons_Position"  Grid.Row="3" Grid.Column="2" />
                        <Label Content="ID:"  Grid.Row="5" Grid.Column="1" />
                        <Label x:Name="S_Cons_ID"  Grid.Row="5" Grid.Column="2" />
                    </Grid>

Как видите, код почти одинаковый, кроме название Label, для отображения информации.
И обекты в методы, предназначенный для обработки событий одного типа.
Можно ли как-то избавится от такого дублирования кода?
Мне нужно ещё 4 таких же блока, и это будет совсем некрасиво и грязно.
PM MAIL   Вверх
KelTron
Дата 29.7.2011, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну создай UserControl...


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




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


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

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