Microsoft .NET/WPF

[WPF] ListView

전자기린 2019. 5. 13. 14:06

Table 형식으로 데이터를 출력함.

<ListView 
    x:Name="listview" 
    VerticalContentAlignment="Center">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="1" Width="100" >
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <CheckBox 
                            IsChecked="{Binding check}" 
                            ToolTip="{Binding name}"
                            Width="20" Height="30" 
                            Margin="0,15,0,0">
                        </CheckBox>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn Header="" Width="240">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <Label 
                            Content="{Binding name}" 
                            Foreground="Red" 
                            FontSize="12"/>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

 

ItemTemplate으로 데이터를 표현하고 다양한 구성으로 배치가 가능. 

 

<ListView 
    Name="lvWorks"
    Grid.Row="3"
    Grid.ColumnSpan="10"
    ItemsSource="{x:Static local:StaticData.ocWorks}">
    <ListView.ItemTemplate>
        <DataTemplate>
            <Grid Width="730">
                <StackPanel
                    Name="stp"
                    Orientation="Horizontal"
                    Width="auto">
                    <Border 
                        Width="730"
                        Padding="1"
                        Background="LightGray">
                        <Grid
                            Width="730"
                            Margin="1">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="auto"/>
                                <RowDefinition Height="auto"/>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="30"/>
                                <ColumnDefinition Width="170"/>
                                <ColumnDefinition Width="100"/>
                                <ColumnDefinition Width="1*"/>
                                <ColumnDefinition Width="1*"/>
                                <ColumnDefinition Width="70"/>
                            </Grid.ColumnDefinitions>
                            <Border
                                Grid.Column="0"
                                Grid.RowSpan="2"
                                Width="30"
                                BorderThickness="0,0,1,0"
                                BorderBrush="Gray">
                                <Label 
                                    Content="{Binding idx}"
                                    VerticalAlignment="Center"
                                    HorizontalAlignment="Center"
                                    FontSize="15" FontWeight="Bold" Foreground="DimGray"
                                />
                            </Border>
                            <Border
                                Grid.Column="1"
                                Width="170"
                                BorderThickness="0,0,0,1"
                                BorderBrush="Gray">
                                <Label 
                                    Content="{Binding type}"
                                    FontSize="15" FontWeight="Bold"
                            />
                            </Border>
                            <Border
                                Width="100"
                                Grid.Column="2"
                                BorderThickness="1,0,0,1"
                                BorderBrush="Gray">
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="40"/>
                                        <ColumnDefinition Width="60"/>
                                    </Grid.ColumnDefinitions>
                                    <Label 
                                        Content="Loop"
                                        Grid.Column="0"
                                        Width="40"/>
                                    <ComboBox 
                                        SelectedItem="{Binding loop}"
                                        Grid.Column="1"
                                        Width="55"
                                        ItemsSource="{x:Static local:StaticData.ocLoopCount}">
                                    </ComboBox>
                                </Grid>
                            </Border>

                            <Label 
                                Content="{Binding definition}"
                                ToolTip="{Binding data}"
                                Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="5"/>
                            <Button
                                Name="btnSetting"
                                Grid.Column="5" Grid.RowSpan="2"
                                Width="60"
                                Content="Setting"
                                Click="BtnSetting_Click"/>
                        </Grid>
                    </Border>
                </StackPanel>
            </Grid>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>