037. Partial Class

2022. 1. 6. 18:54·사소한 아이의 소소한 스킬/C#
반응형

이번엔 Partial Class이다.

 

사실 현재까지는 많이 사용하지 않는 방식..

 

하지만 코드가 길어지고 하다보니 써봐야하는생각이 많이 든다.

 

ViewModel에 Binding 되는 Property들, 호출하는 Command, 또한 기본 생성장/소멸자/Dispose등

 

많아질수록 위치가 헷갈린다.. 대부분 F12키를 이용해서 이동하지만.... 생성자 한번 찾아가려면..고생이다..

 

다음 플젝부터는 좀 구분해서 해보는것도 좋은 방법일듯싶다.

 

그리하여 코드 ㄱㄱ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<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:dock="http://schemas.xceed.com/wpf/xaml/avalondock"
        xmlns:dockctrl="clr-namespace:Xceed.Wpf.AvalonDock.Controls;assembly=Xceed.Wpf.AvalonDock"
        xmlns:local="clr-namespace:TestProject"
        xmlns:LocalViewModel="clr-namespace:TestProject.ViewModels"
        xmlns:LocalModel="clr-namespace:TestProject.Models"
        mc:Ignorable="d"
        Title="MainWindow" Height="561.5" Width="785">
    <Window.DataContext>
        <LocalViewModel:MainViewModel/>
    </Window.DataContext>
 
    <Grid Margin="10">
        <Grid>
            <TextBlock x:Name="tb" Text="{Binding Binding_TEXT}"/>
        </Grid>
    </Grid>
</Window>
 
Colored by Color Scripter
cs

 

UI는 어렵지 않게 꾸미겠다.. 그냥 바인딩되는 TextBlock 한개....

 

코드비하인드도 없고..

 

ViewModel은

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Xml.Linq;
using System.Xml.Serialization;
 
using TestProject.Models;
 
namespace TestProject.ViewModels
{
    class MainViewModel : INotifyPropertyChanged
    {
        public MainViewModel()
        {
            Car C = new Car("TESLA S", CAR_TYPE.ELECTONIC, 40000);
 
            C.CARBRAND = "TESLA";
 
            Binding_TEXT = C.ToString();
        }
 
        private string _Binding_TEXT;
 
        public string Binding_TEXT
        {
            get
            {
                return _Binding_TEXT;
            }
            set
            {
                _Binding_TEXT = value;
                OnPropertyChanged("Binding_TEXT");
            }
        }
 
        public event PropertyChangedEventHandler PropertyChanged;
 
        protected virtual void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }
    }
}
 
Colored by Color Scripter
cs

 

ViewModel 또한 단순단순.

 

Car라는 클래스 하나 선언해주고 바인딩되는 Text에 Car정보 넣어주고 끝이다.

 

Car Class가 Partial로 작성되었다

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace TestProject.Models
{
    public enum CAR_TYPE
    {
        GASOLINE = 0,
        DIESEL = 1,
        ELECTONIC = 2
    }
 
    public partial class Car
    {
        public Car()
        {
 
        }
 
        public Car(string _name, CAR_TYPE _TYPE, int _price)
        {
            CARNAME = _name;
            CARTYPE = _TYPE;
            CARPRICE = _price;
        }
 
        private string _car_name;
 
        public string CARNAME
        {
            get { return _car_name; }
            set { _car_name = value; }
        }
 
        private CAR_TYPE _car_type;
        public CAR_TYPE CARTYPE
        {
            get { return _car_type; }
            set { _car_type = value; }
        }
 
        private int _car_price;
        public int CARPRICE
        {
            get { return _car_price; }
            set { _car_price = value; }
        }
 
        public override string ToString()
        {
            return CARNAME + "-" + CARTYPE + "-" + CARBRAND + "-" + CARPRICE;
        }
    }
 
    public partial class Car
    {
        private string _car_brand;
        public string CARBRAND
        {
            get { return _car_brand; }
            set { _car_brand = value; }
        }
    }
 
}
 
Colored by Color Scripter
cs

 

Car Class 너무 우려먹나...

 

아무튼... Car Brand라는 새로운 Property를 추가한 모습이다..

 

생성하는 class에 partial 키워드를 넣고 기존과 동일하게 추가해주면 된다.

 

1개의 Class를 나누어 작성하는 것이므로 동일한 이름 등을 추가하면 당연히 컴파일 에러가 난다.

 

이상!!

언제부턴가..파일 업로드가 안된다.....

하아 스트레스받네.......

구글 드라이브로 대신합니다.

https://drive.google.com/file/d/1eycCMV3na-dsLLbDcMOoTm2HZbDI3EIX/view?usp=sharing

반응형
저작자표시 비영리 변경금지 (새창열림)
'사소한 아이의 소소한 스킬/C#' 카테고리의 다른 글
  • 039. 상속의 방법(virtual, abstract, interface)
  • 038. 객체지향의 특징
  • 036. Find Window
  • 035. XmlSerialize
JOOJI
JOOJI
그냥 혼자좋아하는 것들 남기는 블로그....
  • JOOJI
    사소한프로그래머의 소소한행복
    JOOJI
  • 전체
    오늘
    어제
    • 분류 전체보기 (951) N
      • 사소한 아이의 소소한 일상 (245)
      • 사소한 아이의 소소한 먹거리 (43)
      • 사소한 아이의 소소한 정보 (75) N
      • 사소한 아이의 소소한 감사 (4)
      • 사소한 아이의 소소한 운동 (53) N
      • 사소한 아이의 소소한 여행 (40)
        • 2013_전주 (1)
        • 2014_독일 (13)
        • 2014_군산 (1)
        • 2015_제주도 (3)
        • 2015_서울모토쇼 (3)
        • 2015_진해 (1)
        • 2015_전주 (1)
        • 2016_여수 (1)
        • 2020_강릉 (1)
        • 2022_제주도 (4)
      • 사소한 아이의 소소한 강짱 (22)
        • 하트투하트 (10)
        • MAPS (1)
        • 화려한 유혹 (2)
        • 한여름의 추억 (2)
      • 사소한 아이의 TV (50)
        • Drama (9)
        • 예능 (32)
        • 사소한 아이의 다현 (9)
      • 사소한 아이의 소소한 스킬 (130)
        • Scaleform (2)
        • C# (74)
        • QT (3)
        • 알고리즘 (4)
        • Python (21)
        • PyQT5 (9)
        • C_C++ (2)
      • 사소한 아이의 소소한 축구 (283)
        • Korea (25)
        • Germany (45)
        • Bayern Munich (64)
        • Soccer_ETC (75)
        • Euro 2016 (12)
        • 친선경기 (3)
      • 사소한 아이의 소소한 생활정보 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
    • 관리
  • 링크

    • 독일여행
    • 레바티스토리
    • 프라치노 공간
    • 남성패션꿀템 블로그
  • 공지사항

  • 인기 글

  • 태그

    분데스리가
    c#
    WPF
    독일
    문제
    뮌헨
    회사밥
    바이에른 뮌헨
    러닝
    python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JOOJI
037. Partial Class

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.