none
GridView 사용시 컬럼 Header 및 Line 적용 에 대하여 질문드립니다. RRS feed

  • 질문

  • GridView 를 사용하여 단순한 List 생성시 각 각의 Column Header 를 생성하여 클릭 이벤트를 걸고자 합니다.

    해당 동작에 대한 예제가 있는지 질문드립니다.

    또 하나 더 질문을 하자면 GridView를 생성할 경우 기본적으로 Cell 에 대해 외곽선 처리가 되지 않아 각 각의 컬럼에 대하여 외곽선 처리를 하고

    싶은데 어떻게 해야 할지도 질문드립니다.

    메트로 UI 는 하루에 하나씩 모르는게 나오는 군요... ㅠㅠ

    기존 DataGrid처럼 작업을 해야 하는데...

    2013년 10월 4일 금요일 오전 6:11

답변

  • 아 질문이 하나 더 있었군요.

    지금 구현 내용을 모르기 때문에 이것도 그냥 간단히 드리자면, 아래와 같이 <Border>를 이용하여 그리드 아이템을 구성하는 내용물을 감싸면 됩니다.

    <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="200" Height="110" BorderThickness="1" BorderBrush="Red" >
        <StackPanel Grid.Column="1" VerticalAlignment="Top" Margin="10,0,0,0">
            <TextBlock Text="{Binding Title}" Style="{StaticResource TitleTextStyle}" TextWrapping="NoWrap"/>
            <TextBlock Text="{Binding Subtitle}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap"/>
            <TextBlock Text="{Binding Description}" Style="{StaticResource BodyTextStyle}" MaxHeight="60"/>
        </StackPanel>
    </Border>

    • 답변으로 제안됨 RichikaKR 2013년 10월 11일 금요일 오전 1:14
    • 답변으로 표시됨 Jina Lee 2013년 10월 15일 화요일 오전 7:16
    2013년 10월 11일 금요일 오전 1:10

모든 응답

  • 그냥 샘플만 달라고 하시면 답변을 얻으시기가 어렵습니다.
    질문하기는 쉽습니다만 답변을 다시는 분들은 어디서부터 어디까지 드려야 하는 것인지 막막합니다.

    현재까지 어떻게 구현하셨으며, 그 때 원하는 기능의 구현을 어떻게 할 수 있는가 물으시는 것이 좋은 답변을 얻을 수 있는 길이 아닌가 합니다.

    Column Header 이벤트 구현에 대해서 가장 쉬운 답변을 드리자면 다음과 같습니다.

    ListView나 GridView에는 다음과 같이 헤더를 추가하고 이벤트를 추가할 수 있습니다.

    <GridView.Header>
        <TextBlock Text="TITLE" Margin="240,0,0,0" PointerPressed="TextBlock_PointerPressed"/>
    </GridView.Header>


    private void TextBlock_PointerPressed(object sender, PointerRoutedEventArgs e)
    {
        // 코드 추가
    }

    헤더를 추가하는 방법은 여러 가지가 있기 때문에 그대로 적용이 안 될 수도 있습니다.

    참고되시길 바랍니다.

    2013년 10월 11일 금요일 오전 12:56
  • 아 질문이 하나 더 있었군요.

    지금 구현 내용을 모르기 때문에 이것도 그냥 간단히 드리자면, 아래와 같이 <Border>를 이용하여 그리드 아이템을 구성하는 내용물을 감싸면 됩니다.

    <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="200" Height="110" BorderThickness="1" BorderBrush="Red" >
        <StackPanel Grid.Column="1" VerticalAlignment="Top" Margin="10,0,0,0">
            <TextBlock Text="{Binding Title}" Style="{StaticResource TitleTextStyle}" TextWrapping="NoWrap"/>
            <TextBlock Text="{Binding Subtitle}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap"/>
            <TextBlock Text="{Binding Description}" Style="{StaticResource BodyTextStyle}" MaxHeight="60"/>
        </StackPanel>
    </Border>

    • 답변으로 제안됨 RichikaKR 2013년 10월 11일 금요일 오전 1:14
    • 답변으로 표시됨 Jina Lee 2013년 10월 15일 화요일 오전 7:16
    2013년 10월 11일 금요일 오전 1:10