020. Data Trigger
반응형

이번엔 Data Trigger이다.

 

모든 Trigger가 그렇듯.. 코드 비하인드의 if문을 생각하면 좋다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if( 나는 부자다 )
 
{
 
    /// 돈을 쓰자
 
}
 
else
 
{
 
    /// 열심히 모으자
 
}
cs

 

이러한 if문을 xaml로 쓰는게 trigger문..

 

이번엔 Data Trigger이다.

 

Data Trigger... 이름만 봐도 뭐.. Data를 비교하여 수행하는 것..

 

바로 코드 ㄱㄱ

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<Window x:Class="TestProject.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:TestProject"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
 
        <ComboBox x:Name="cb" Height="44" VerticalAlignment="Top">
            <ComboBoxItem Content="1"/>
            <ComboBoxItem Content="2"/>
            <ComboBoxItem Content="3"/>
            <ComboBoxItem Content="4"/>
        </ComboBox>
 
        <Rectangle x:Name="rect" Grid.Column="0" HorizontalAlignment="Stretch" d:LayoutOverrides="LeftMargin, RightMargin" Margin="0,44,0,0">
            <Rectangle.Style>
                <Style TargetType="{x:Type Rectangle}">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=cb,Path=SelectedIndex}" Value="0">
                            <Setter Property="Fill" Value="Red"></Setter>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding ElementName=cb,Path=SelectedIndex}" Value="1">
                            <Setter Property="Fill" Value="Yellow"></Setter>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding ElementName=cb,Path=SelectedIndex}" Value="2">
                            <Setter Property="Fill" Value="Green"></Setter>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding ElementName=cb,Path=SelectedIndex}" Value="3">
                            <Setter Property="Fill" Value="Blue"></Setter>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Rectangle.Style>
        </Rectangle>
    </Grid>
</Window>
 
cs

 

이거도 코드설명을 아주 잠깐하자면..

 

콤보박스에서 선택한 Index에 따라 Rectangle의 Fill 색상을 변경토록 한 거다..

 

어려운게 없을테니.... 뭐... 설명은 여기까지..

 

실행화면은

 

간 - 단

 

코드는 여기

 

TestProject.zip
0.04MB

 

반응형