WPF 팁

UniformGrid ListBox 샘플 이재웅 평점: 없음 조회: 2224

 안녕하세요~
WPF UniformGrid Type의 ListBox 기본 샘플입니다.

제가 좋아하는 리그오브레전드 pick 창입니다. (티어는 b..)

스터디 하면서 만들었는데 함께 공유드립니다. 설명은 좀 부족하지만 틈틈히 채워나갈 예정입니다.
첨부한 소스코드 참고해주세요!

샘플 프로그램 실행 이미지입니다. 
ListBoxItem을 Selected 했을 때, IsHitTestVisible 속성을 변경합니다.
그리고 하단에 있는 또다른 ListBox에 해당 이미지를 추가합니다.



UniformGrid를 활용하여 위와 같이 한줄에 10칸씩 ListBoxItem을 채워나가는 기능을 설명하고 있습니다.

ListBox ItmesPanelTemplate

UniformGrid는 StackPanel과는 다르게 가로 방향으로만 사용할 수 있습니다.(그렇다고 Rows가 없는 것은 아닙니다.ㅋ 만약 Rows 값을 2로 지정해주었다면 위에 이미지는 2줄만 출력되었을겁니다. )
 

<Style TargetType="ListBox" x:Key="LBX_UNIFORMGRID">
        <Setter Property="VerticalAlignment" Value="Top"/>
        <Setter Property="BorderBrush" Value="#222222"/>
        <Setter Property="Background" Value="#222222"/>
        <Setter Property="ItemContainerStyle" Value="{DynamicResource LBXITEM_UNIFORMGRID}"/>
        <Setter Property="ItemsPanel">
            <Setter.Value>
                <ItemsPanelTemplate>
                    <UniformGrid IsItemsHost="True" Columns="{Binding Tag, RelativeSource={RelativeSource AncestorType=ListBox}}" Rows="3"/>
                </ItemsPanelTemplate>
            </Setter.Value>
        </Setter>
    </Style>


그리고 각각의 ListBox로부터 Columns 숫자를 아오기 위해 ListBox.Tag를 바인딩 해주었습니다.
 

Columns="{Binding Tag, RelativeSource={RelativeSource AncestorType=ListBox}}"

그리고 복수의 ListBox는 Column을 Tag를 통해 지정해줍니다.(좋은 방법이라고 볼 순 없지만 샘플상에서는..)

<ListBox Tag="10"/>
<ListBox Tag="3"/>	 


Data Model


기능 중에서 IsHitTestVisible 값을 바꾸기 위해서 아래의 isPick 값을 통해 view를 업데이트합니다. (그래서 OnpropertyChanged를 위해 ObservableObject 상속)
 

public class Champ : ObservableObject
{
    bool _IsPick;
    public bool IsPick
    {
        get { return _IsPick; }
        set { _IsPick = value; base.OnPropertyChanged("IsPick"); }
    }
    public string Name { get; set; }
    public string Thumbnail
    {
        get { return string.Format("/Images/{0}.jpg", Name); }
    }
}


TBD...

태그 : c# ishittestvisible uniformgrid wpf
작성자 정보
이재웅
Level 16
 [EXP.50/70]

메일:  비공개

글등록 +12 156 덧글등록 +3 90
자기소개
안녕하세요. 저는 이재웅이라고합니다. ijaeawung@naver.com
글 공유하기 |
  tweet facebook
2015-11-05 오후 3:56:06
나도한마디
태그로 엮인글
[C#.NET Q&A] "X"버튼을 누르고 메세지박스 예 누르면 종료되지 않는 문제가 있습니다.[1]+1  성단See
[C#.NET Q&A] WPF UI visiable 변경시 끊김현상 질문  썬콩콩
[구인&교육정보] [기흥] 관리시스템) C# 중급 개발자 모집(3월초)  인텍솔루션(주)
[구인&교육정보] [방배역인근] 운영) C#.NET 초급 유지보수 모집(즉시)  인텍솔루션(주)
[C#.NET Q&A] 비주얼 스튜디오에서 닷넷 종류에 따라 인텔리센스 MSDN이 영문으로 나옵니다  천9
[C#.NET Q&A] c# Soap 통신 질문한번 더 드립니다.  썬콩콩
[C#.NET Q&A] WPF 사용하여 Excel Export 관련 질문드립니다.[2]  미야
[C#.NET Q&A] c# Soap 통신 질문입니다.[1]+1  썬콩콩
[C#.NET Q&A] System.Drawing.Image 객체의 IsDisposed 여부 확인방법이 있나요?  최광섭
[C#.NET Q&A] c# Colordialog에 버튼 추가 하는방법[1]  SOS1324
글리스트
CheckBox ListBox 샘플[2] 파일첨부 이재웅
RadioButton ListBox 샘플 파일첨부 이재웅
 ★현재글->   UniformGrid ListBox 샘플 파일첨부 이재웅
Horizontal ListBox 샘플 파일첨부 이재웅
Vertical ListBox 샘플[2] 파일첨부 이재웅
Form Designer 프로젝트 #7 - Tool Window (콘트롤 속성 지정/변경) - 완료![1]+1  안떠니
Form Designer 프로젝트 #6 - Tool Window (콘트롤 추가/삭제) - 완료![3]+1  안떠니
Form Designer 프로젝트 #5 - TreeView Manager  안떠니
Form Designer 프로젝트 #4 - TreeView + XML [1]  안떠니
Form Designer 프로젝트 #3 - TreeView 삭제 / 이름변경[2]+2  안떠니
Form Designer 프로젝트 #2 - TreeView 노드 추가[1]  안떠니
Form Designer 프로젝트 #1 - 프로젝트 관리 화면[4]+1  안떠니
실행파일에서 config 파일 변경하기[1]+3  킴언어