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


Автор: kobra 18.5.2009, 12:40
здравствуите господа
Код

<Grid>
        <ListBox Name="dataGrid1" >
             <ListBox.ItemTemplate>
                <DataTemplate>
                    <Expander>
                        <Expander.Header>
                            <TabPanel>
                                 <TextBlock Text="{Binding Path=ClientLastName}" FontSize="18">
                                    <Border BorderThickness="1" Margin="2"></Border>
                                </TextBlock>
                                <TextBlock Text="{Binding Path=ClientFirstName}" FontSize="18">
                                     <Border BorderThickness="1" Margin="2"></Border>
                                </TextBlock>
                            </TabPanel>
                        </Expander.Header>
                        <DockPanel>
                            <TextBlock Text="{Binding Path=ClientID}">
                                <Border BorderThickness="1" Margin="2"/>
                            </TextBlock>
                            ...
                            ...
                            </TextBlock>
                            <TextBlock Text="{Binding Path=ClientRating}">
                                <Border BorderThickness="1" Margin="2"/>
                            </TextBlock>
                         </DockPanel>
                      </Expander>
                </DataTemplate>
            </ListBox.ItemTemplate>
          </ListBox>
    </Grid>
описание:
ListBox исползуется как dataGrid. данные показываются в Expander-е. простой шаблон отображает данные. ето ерунда.
задача:
в зависимости от значения данных, в данном случае ClientRating, менять расцветку (Background), цвет шрифта и акантовку (BorderBrush) Expander-а.

спосибо 

Автор: Partizan 19.5.2009, 15:25
kobra, Добрый день.


Код

<Grid>
        <ListBox Name="dataGrid1" >
             <ListBox.ItemTemplate>
                <DataTemplate>
                    <Expander>
                         <Expander.Style>
                            <Style>
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding ElementName=rateText, Path=Text}" Value="1">
                                        <Setter Property="Control.Background" Value="Red"/><!--If ClientRating is 1 turn Background into Red -->
                                    </DataTrigger>
                                    <!-- The same construction can be applied to other properties -->
                                </Style.Triggers>
                            </Style>
                        </Expander.Style>
                        <Expander.Header>
                            <TabPanel>
                                 <TextBlock Text="{Binding Path=ClientLastName}" FontSize="18">
                                    <Border BorderThickness="1" Margin="2"></Border>
                                </TextBlock>
                                <TextBlock Text="{Binding Path=ClientFirstName}" FontSize="18">
                                     <Border BorderThickness="1" Margin="2"></Border>
                                </TextBlock>
                            </TabPanel>
                        </Expander.Header>
                        <DockPanel>
                            <TextBlock Text="{Binding Path=ClientID}">
                                <Border BorderThickness="1" Margin="2"/>
                            </TextBlock>
                            ...
                            ...
                            </TextBlock>
                            <TextBlock Text="{Binding Path=ClientRating}">
                                <Border BorderThickness="1" Margin="2"/>
                            </TextBlock>
                         </DockPanel>
                      </Expander>
                </DataTemplate>
            </ListBox.ItemTemplate>
          </ListBox>
    </Grid>

Автор: kobra 20.5.2009, 17:04
Partizan спосибо. 

Автор: kobra 3.6.2009, 09:18
решил конвертером

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