[www.topcredu.co.kr]
ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListBox Refresh 적용 실습
직무타입(내근:Inner, 외근:OutSide)과 직무목록을 보여주는 두개의 ListBox 컨트롤을 사용해서 직무타입을 선택하면 Linq를 통해 해당 직무타입의 직무를 쿼리해서 하단의 ListBox에 보여주는 예제이다.
“직무추가” 버튼을 클릭하면 새창이 뜨고 직무를 입력 후 저장 버튼을 클릭하면 직무입력 화면이 사라지고 메인 윈도우 상단의 ListBox가 새창에서 입력한 직무타입으로 선택되면서 하단의 ListBox는 해당 직무타입의 직무목록으로 자동으로 Refresh 된다.
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListBox Refresh 적용 실습, WPF추천학원
1. www.topcredu.co.kr 이종철
C#, WPF 기초강좌
ListBox와 LINQ쿼리를 이용한 간단한 데이
터바인딩, 새창 띄우기, 이벤트 및 델리게이
트를 통한 메인윈도우의 ListBox Refresh 적
용 실습
직무타입(내근:Inner, 외근:OutSide)과 직무목록을 보여주는 두개의 ListBox 컨트롤을
사용해서 직무타입을 선택하면 Linq를 통해 해당 직무타입의 직무를 쿼리해서 하단
의 ListBox에 보여주는 예제이다.
2. “직무추가” 버튼을 클릭하면 새창이 뜨고 직무를 입력 후 저장 버튼을 클릭하면 직
무입력 화면이 사라지고 메인 윈도우 상단의 ListBox가 새창에서 입력한 직무타입으
로 선택되면서 하단의 ListBox는 해당 직무타입의 직무목록으로 자동으로 Refresh
된다.
WPF 프로젝트를 생성하자. (본 예제에서는 프로젝트명을 “WpfApp1”로 설정했다.)
[Duty.cs]
using System.ComponentModel;
using System.Collections.ObjectModel;
namespace WpfApp1
{
public enum DutyType
{
Inner,
OutSide
3. }
public class Duty
{
private string _name;
private DutyType _dutyType;
public Duty()
{
}
public Duty(string name, DutyType dutyType)
{
_name = name;
_dutyType = dutyType;
}
public string DutyName
{
get { return _name; }
set
{
_name = value;
}
}
public DutyType DutyType
{
get { return _dutyType; }
set
{
_dutyType = value;
}
}
}
public class Duties : ObservableCollection<Duty>
{
public Duties()
{
Add(new Duty("SALES",DutyType.OutSide));
Add(new Duty("LOGISTICS", DutyType.OutSide));